[omniORB] Is resolve_initial_references() implemented right?

Jaap de Wolff wolff@NewBridges.nl
Fri, 14 Dec 2001 13:58:18 +0100


Hello,

I'm quit new to omniORB.
I downloaded it yesterday, and ported a project from TAO (The Ace ORB) to
omniORB.
In my project I use one Windows NT service, starting several CORBA services.
At runtime the service decides which CORBA services to load.

When creating orb = CORBA::ORB_init() from the NTService, and then load a
DLL (let's say CorbaDLL), then the call from CorbaDLL
orb->resolve_initial_reference() let crash the system.
This is because from CorbaDLL in the file omniInternal.cc the
omni::internalLock is a NULL pointer.
When calling orb->resolve_initial_reference() from NTService
omni::internalLock is not a NULL pointer, and works as expected.

At this moment omni::internalLock is a global pointer, which can be more
then one time in a project, just by linking different DLL's to the omni
libraries.
I have seen more global pointers in the code, which can give similar
problems.

---
Jaap de Wolff
Wolff@NewBridges.nl
New Bridges B.V.
Calandstraat 44
3316 EA Dordrecht
Tel. 078 6548787
Fax 078 6548788
www.NewBridges.nl