[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