[omniORB] ORB::destroy hanging(?) in omniORB 4.0.5
Duncan Grisby
duncan at grisby.org
Tue Mar 29 18:32:55 BST 2005
On Tuesday 15 March, Steve Rowe wrote:
> I have converted an existing server application from using BOA (and omniORB
> 4.0.4 at this time) to using POA. The original code to shutdown (using a
> signal handler) the server application seems to work just fine under BOA.
> Under POA however, the application does not shut down. I have put in
> logging messages to determine that the call to ORB::shutdown(false) returns
> (as expected), but the call to ORB::destroy() does not. It just seems to
> hang.
Firstly, you shouldn't call shutdown from a signal handler. The only
threading primitives guaranteed to work from signal handlers are System
V semaphores, so you should use one of those to trigger a thread to call
shutdown. I don't know if that's anything to do with your problem, but
it's something to consider.
[...]
> omniORB: (0) Wait for ORB invoker threads to finish.
> omniORB: (1) AsyncInvoker: thread id = 1 has exited. Total threads = 2
> omniORB: (2) AsyncInvoker: thread id = 2 has exited. Total threads = 1
This shows that there is a thread left behind. You should attach to the
process and get a back trace from any remaining threads, to see what's
going on.
Cheers,
Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
More information about the omniORB-list
mailing list