[omniORB] Problem with POA object map.
Duncan Grisby
duncan at grisby.org
Mon Oct 16 14:26:30 BST 2006
On Monday 16 October, Guillaume Schmid wrote:
[...]
> My problem is that when I close the service I notice in the log that I
> have a LOT of message like:
>
> omniORB: Object table entry root/ChildPOA<currFrame> (dead) deleted.
> omniORB: Disable ObjRef(IDL:MzDist/DistChannelImage2d:1.0)
> root/ChildPOA<currFrame>
>
> so I believe that my attempt to destroy the servant for each frame left
> some entry in the POA.
Actually, that's a sign that you have leaked a load of object
references, not anything in the POA. The message about object table
entries is due to the fact that the object references hold a pointer to
the object table entries, even though they are no longer actually in the
object table.
The problem is that you have leaked an object reference in _this:
[...]
> // The client implements this method
> _fHandler->handleFrame( fw->_this() );
You need to release the result of _this, so turn that line into
something like
FrameWrapper_var obj = fw->_this();
_fHandler->handleFrame(obj);
That will fix the leak.
Cheers,
Duncan.
--
-- Duncan Grisby --
-- duncan at grisby.org --
-- http://www.grisby.org --
More information about the omniORB-list
mailing list