[omniORB] CORBA and firewalls/NATs
Renzo Tomaselli
renzo.tomaselli at tecnotp.it
Fri Dec 15 09:42:35 GMT 2006
Hi all,
we use the servant activator for dynamically instantiate servants since
several years and through several versions of OmniORB, till 4.07.
One disappointing feature of this mechanism concerns the method
omniOrbPOA::dispatch_to_sa (in poa.cc), which holds a mutex on
omniServantActivatorTaskQueue while calling incarnate method inside
application code. If this in turn needs the servant activator again,
then we get a deadlock on any pthread implementation (not on Windows,
though).
We cannot prevent this since it occurs internally to OmniORB. Also it's
hard to predict, since it occurs whenever a method is called on an obj
ref which has no servant yet, and I don't know about any public way to
detect this in advance (the process object table is not public), besides
the heavy complication of checking it for all methods of all objects.
Is this behavior still present in 4.1 ? Any chance to release that mutex
or is there any other trick possible ?
Thanks -- Renzo Tomaselli
More information about the omniORB-list
mailing list