[omniORB] client call timeouts on HP-UX

Masaaki Sekiya sekiya@nagoya.ydc.co.jp
Wed, 28 Jun 2000 19:38:17 +0900 (JST)


Sai-Lai wrote:

> What seems to happen is that on HPUX 11, whether shutdown() releases recv()
> blocking in the kernel depends on which end of the connection the
> socket is representing.
> 
> If the socket is passive, i.e. created by accept(), recv() is released by a
> shutdown() call by another thread. Therefore the omniORB server side
> connection shutdown works just fine.
> 
> If the socket is not passive, i.e. used with connect(), recv() is not
> released by a shutdown() call by another thread. 
> 
> Can anyone confirm if HPUX 10 also exhibits the same behaviour?
> 
> The socket library on Windows NT also behaves in the same way.
> 
> The following code should correct the behaviour. The down side is we have
> to take a performance hit in doing 2 system calls instead of 1. I just
> hope poll() is not as costly as a select().

Thank you for a quick response.
I could'nt confirm shutdown() releases recv() on passive socket. 
But patch works fine.
A performance seems to be as well.

Masaaki Sekiya