[omniORB] omniInitialRefLister

David.Chung@USPTO.GOV David.Chung@USPTO.GOV
Thu, 15 Jul 1999 08:53:22 -0400


	If I remember correctly, static objects are supposed to be destroyed
in the reverse order 
that the static objects were originally created.  
(at least that is what is supposed to happen under ANSI C++ standard).  

	The point here is that if omniORB properly orchestrates the 
static object creation, the destruction of those objects also should be
orderly 
(in the "reverse" order).  If the destruction is not done in the proper
order even
though the creation of those objects is orderly, then the problem may
lie with the compiler/linker.



> -----Original Message-----
> From:	coys@whitesmiths.com.au [SMTP:coys@whitesmiths.com.au]
> Sent:	Wednesday, July 14, 1999 10:52 PM
> To:	omniORB-list@uk.research.att.com
> Subject:	[omniORB] omniInitialRefLister
> 
> Hi,
> 
> There is a static instance of this object that attempts to list the set of
> initial references held by omniInitialReferences at static destructor time
> when the ORBtraceLevel is >= 15.
> 
> Unfortunately, this destructor is indirectly dependent upon a static
> object
> in another source file (omniObject::objectTableLock).
> 
> Of course, on one of my platforms (HPUX 11.0), this second static object
> is
> destroyed before omniInitialRefLister::~omniInitialRefLister is invoked.
> Remember that static objects can be destroyed in any order.
> 
> I think that we need to find a better way to implement this functionality,
> rather than rely upon a static destructor.
> 
> Regards,
> 
> Stephen Coy
> Whitesmiths