[omniORB] server/orb shutdown question in omni_thread

Duncan Grisby duncan at grisby.org
Wed Jul 30 16:32:08 BST 2003


On Monday 28 July, "Lee, Robert C." wrote:

[...]
> omniORB: Assertion failed.  This indicates a bug in the application using
> omniORB, or maybe in omniORB itself. e.g. using the ORB after it has
> been shut down.
>  file: ../../../../../src/lib/omniORB/orbcore/corbaOrb.cc
>  line: 1053
>  info: invoker_threads == 0

[...]
> In the thread function, I make one corba call, then do a orb->destory(),
> followed by exit. Any ideas what might be wrong?

There was a bug in the shutdown code that you triggered. I've fixed it
in CVS. You'll have to wait until tomorrow to get the nightly
snapshot, since SourceForge's CVS is somewhat broken right now.

That said, you shouldn't call destroy() from any thread other than the
main thread, because the main thread will leave run() after the
shutdown() bit of destroy() happens, so you run the risk of falling
off the end of the program before the thread doing destroy() is
finished. The best thing is to call shutdown() in the thread, then
destroy() in the main thread after run().

> I noticed in the manual, there are preprocessor defines for sun, linux,
> digital unix, and nt, but not my platform, IRIX?

That's just because historically the platforms we had at AT&T were
Solaris, Linux, NT and Digital Unix, so they were the "supported"
platforms. The best way to figure out the defines you need is to look
at the platform makefiles.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list