Problem Shutting Down the ORB



Hi,

I have a multi-threaded application. In one thread I do a
CORBA_ORB_run. This thread then remains busy for the rest of the 
execution. When the program starts to exit I call
CORBA_ORB_shutdown(orb, false, ev) from my main thread... ev returns 
with no exception...

The only problem is that the ORB doesn't exit. I've done this before and 
it does exit, but shutdown is called from the same thread that start was 
called from. I suspect the multiple threads could be the problem. Has 
anyone encountered this before?

My stack trace for the ORB thread, after calling CORBA_ORB_shutdown, 
looks like this. Note, my main thread waits for this one to exit before 
exiting itself.

#0  0x416ac9f7 in __poll (fds=0x80e9690, nfds=2, timeout=-1)
     at ../sysdeps/unix/sysv/linux/poll.c:63
#1  0x40920751 in g_main_context_poll (context=0x80e2840, timeout=-1,
     priority=2147483647, fds=0x80e9690, n_fds=2) at gmain.c:2596
#2  0x4091fd65 in g_main_context_iterate (context=0x80e2840, block=1,
     dispatch=1, self=0x80e5fc0) at gmain.c:2273
#3  0x40920432 in g_main_loop_run (loop=0x80e3160) at gmain.c:2498
#4  0x4089f62d in linc_main_loop_run () at linc.c:150
#5  0x40877d3e in CORBA_ORB_run (orb=0x80e31a0, ev=0x41cf1a3c)
     at corba-orb.c:1077
#6  0x0807a1fd in Q_MSC_ORB::run (this=0x80de940) at Q_MSC_ORB.C:208
#7  0x40297cd0 in QProcess::processIdentifier () at eval.c:41
#8  0x415b8b9c in pthread_start_thread (arg=0x41cf1be0) at manager.c:274
#9  0x415b8c7f in pthread_start_thread_event (arg=0x41cf1be0) at 
manager.c:298
(gdb)


Thanks in advance,

-Craig





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]