[omniORB] ORB destroy race

Renzo Tomaselli renzo.tomaselli@tecnotp.it
Fri, 6 Jul 2001 20:42:22 +0200


Hi all,
   I'd like to know which constraints apply whenever the ORB is going to be
destroyed. It might happen that just before this some objects managed by a
servant activator are deactivate and placed on a background queue.
Then the etherealization of such servants would occur in a race with the ORB
being destroyed (and its POAs), so that I suspect some restrictions apply in
what etherealization methods can do meanwhile.
I know for sure that any loopback call doesn't work anymore, thus creating a
deadlock. E.i. incarnation of deactivated servants doesn't work, there is no
return from dispatch(). Btw, I noticed as this occurs when a servant is
deactivated so that its identity switches from local to remote; any further
contact is thus marshalled, even if the client is within the same address
space.
So the point is: do we need to perform any housekeeping *before* calling
orb->destroy(), perhaps waiting through a cond. variable until everything is
clean ?
Thanks for any enlightening,
                                             Renzo Tomaselli
---------------------------------------------------------------------------
TecnoTP s.n.c. Special Information System Design
Maso Pelauchi I38050 Ronchi Valsugana,  Trento TN  ITALY
Tel. +39 0461 773164      Fax. +39 0461 771514
e-mail: renzo.tomaselli@tecnotp.it
---------------------------------------------------------------------------