[omniORB] in MAN_THREAD_MODEL omniORB releases references from other thread

Michael Kilburn crusader.mike at gmail.com
Wed Jan 7 21:57:40 GMT 2009


Hi,

I have recently discovered that MAN_THREAD_MODEL does not guarantee that all
calls to servant are made on the same thread. In particular:
- in a typical destroy() method implementation disconnecting servant from
CORBA layer does not cause it to be destroyed immediately (which is ok), but
instead it is delayed until some point in future
- and at that point in future release (which usually the last one, and
triggers "delete this") is called from different thread.

It sound almost like a violation of guarantees this thread model is supposed
to give (it was designed to for old non-threaded code after all). What was
the reason for this behavior and can it be "fixed"? (yes, it caused issues
in our product in conjunction with other non-obvious things in other places
of our code, I've spent a lot of time trying to figure out why on rare
occasions our product started eating tons of memory :-D)

-- 
Sincerely yours,
Michael.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20090107/f50c8d10/attachment.htm


More information about the omniORB-list mailing list