[omniORB] Getting a debug assertion error while trying to shut down a corba server.

Mike Bendickson Mike.Bendickson@spanlink.com
Tue, 8 Aug 2000 15:32:39 -0500


I have a Windows NT DLL that creates a thread and starts a corba server.
Something like this:

Server thread:
  .
  . // startup stuff omitted
  .
  boa->impl_is_ready();
  boa->destroy();
  orb->NP_destroy();

The main thread needs to be able to shut down the the corba server.  Looking
at the 2.8.0 docs it looks like I should be able to do this:

Main thread:
  boa->impl_shutdown();

The server breaks out of the imp_is_ready() function and executes the
destroy and NP_destroy() methods as expected, but I get the following
assertion error:

	 Assertion failed: 0, file ..\..\object.cc, line 830

Looking at object.cc:

  omniObject::~omniObject()
  {
    if (pd_refCount) {
      // A dtor should not be called if the reference count is not 0
      assert(0);
    }
    .
    .
    .

I'm using Windows NT 4.0, VC++ 6 and omniORB 2.8.0.

Any ideas?

Thanks,
-Mike