CORBA_ORB_shutdown precondition
- From: Bowie Owens <bowie owens csiro au>
- To: orbit-list gnome org
- Subject: CORBA_ORB_shutdown precondition
- Date: Tue, 01 Apr 2003 11:27:55 +1000
Hi,
I am having some difficulty shutting down a server. I have a method kill
which is supposed to release any held resources and shutdown the server.
If I call CORBA_ORB_shutdown, nothing happens because init_level == 1
(src/orb/orb-core/corba-orb.c). If I call CORBA_ORB_destroy, I get an
exception because there is pending work (as the code is still inside a
method call) when CORBA_ORB_destroy internally calls CORBA_ORB_shutdown
with wait for completion TRUE.
If I modify CORBA_ORB_destroy to call CORBA_ORB_shutdown with wait for
completion FALSE, then I can at least destroy the ORB. But I do get a
lot of warnings about leaked references, including references to the
root POA.
If instead I modify the CORBA_ORB_shutdown precondition to be init_level
> 1 (instead of init_level == 0), I can exit the linc main loop by
calling CORBA_ORB_shutdown with wait for completion FALSE and get less
warnings.
The code seems to behave with omniORB so I suspect the precondition
CORBA_ORB_shutdown may be wrong. It seems like it should be init_level >
1 (or maybe init_level == 1 would be safer). Since shutdown gets called
before destroy, there is one active CORBA_ORB_init when the last call to
CORBA_ORB_shutdown is made. Am I right, or have I done something daft in
my client/server code?
PS thanks for the good work on ORBit. For the project I have been
working on, ORBit is faster and more memory efficient than omniORB.
--
Bowie Owens
CSIRO Mathematical & Information Sciences
phone : +61 3 9545 8055
fax : +61 3 9545 8080
mobile : 0425 729 875
email : Bowie.Owens@csiro.au
[Date Prev][
Date Next] [Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]