[omniORB] client call timeouts on HP-UX

Masaaki Sekiya sekiya@nagoya.ydc.co.jp
Fri, 23 Jun 2000 19:33:43 +0900 (JST)


Hi All.
I'm using OmniORB (2.8.0) on HP-UX 11.00.
I have problem with the client call timeouts.
Even if a call timeouts expired , call blocking never end.
I checked mail-archives, and I find the same issue in "2000-03/0029.html".

As Sai-Lai wrote in this mail, I change eg2_impl not to return for a long time 
and run eg2_clt with the options: 
	-ORBtraceLevel 25 -ORBscanGranularity 1 -ORBclientCallTimeOutPeriod 3

As the result, I can see the ORB calling tcpSocketStrand::real_shutdown() 
after the 3 seconds timeout but recv() call is still blocking.
On my understanding , It is necesary for call timeouts that
::shutdown() releases ::recv() call blocking in multi-thread-mode.
Is this understanding right ?
In order to confirm this condition , I made a simple test application ,
in which client one thread calls ::recv() and another thread calls ::shoutdown().
Buf I am much more confused with the result of this test.
If it is compiled without "-D_THREAD_SAFE" , ::shoutdown() don't release 
::recv() blocking. 
( in the distribution , there is no "-D_THREAD_SAFE" in hppa_hpux_11.00.mk )
But it is not the solution . 
Even if compiled with "-D_THREAD_SAFE" , 
it does'nt make sure ::shoutdown() releases ::recv() call blocking.
Situation changes even with adding some "cout << .. " codes.
I wonder it is related with a multi-thread cecancellation point of ::recv() ?
As for the test of eg2_clt , ::shoutdown() never release ::recv() blocking
with "-D_THREAD_SAFE" or any timing.

I can't find a next message of "2000-03/0029.html".
Has anyone solved this problem , or Am I making something mistake ?
Any hint would be very appliciated.

Masaaki Sekiya