[omniORB] Non-blocking version of the TCP transport

Serguei Kolos Serguei.Kolos at cern.ch
Mon Apr 14 13:48:25 BST 2008


To solve the issue of blocking forever in the tcpConnection::Send 
function I have modified
the code in the tcpConnection.cc file to use the TCP sockets in the 
non-blocking mode.
The problem is gone now and I have also notices that the new version 
saves me some CPU
cycles which is an effect of not calling the 'poll' function for every 
'send' or 'recv' as it was before.
For my specific application I gained about 4% of CPU compared with the 
original version.
It is of course very much dependent on the operational mode of an 
application but I believe
that even in the worst case the non-blocking version should be at least 
as fast as the original
one (while I believe that in most practical cases it should be faster).

In case there are no drawbacks of using TCP sockets in non-blocking mode 
which I have
overlooked (which very well might be the case) I wander if it would be 
possible to apply this
patch to the official omniORB distribution.


PS: I have made modifications against omniORB 4.0.7
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tcpConnection.cc
Type: text/x-c++
Size: 11671 bytes
Desc: tcpConnection.cc
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20080414/0ee3883e/tcpConnection.bin

More information about the omniORB-list mailing list