[omniORB] deadlock in omniORBpy-3

Teemu Torma teemu at torma.org
Thu Dec 21 02:13:30 GMT 2006


On Thursday 21 December 2006 01:53, Luke Deller wrote:
> In a python extension written in C, I call CORBA::Object_var's
> destructor while holding the python interpreter lock.  This has
> worked fine in the past, but now with omniORBpy-3.0/omniORB-4.1.0 it
> produces a deadlock.  Is this supposed to work, or is it expected
> that I should release the python lock before releasing C++ CORBA
> object references?

I have had to deal this in the past (omniorb-4.0.x/omniORBpy-2.x) when 
doing converters of _var variables for Boost.Python.  You need to 
release the python interpreter lock before calling the release.  I 
can't remember the details anymore, but my comment says

 This is a bit ugly, but for omniORBpy we must release the interpreter
 lock before the release is called.  The omniorb partial locking order
 requires this (omni::internalLock before python interpreter lock), and
 release of the var may take omni::internalLock).

I hope this helps.

Teemu



More information about the omniORB-list mailing list