On Tue, 2009-02-17 at 15:55 -0500, Dale Worley wrote:
> I'm working on SipRefreshManager, which maintains a UtlHashBag of
> RefreshDialogState objects.  SipRefreshManager sets timers, and the
> timers' userData fields are pointers to the RefreshDialogState object
> that the timer concerns.  The problem is:  When a timer fires, how do I
> check that the RefreshDialogState object that the timer points to has
> not been removed from the UtlHashBag and deleted?

I would put a reference count in the RefreshDialogState object and use
that to ensure that it cannot be deleted until there are no references
to it.  Increment the reference when a timer starts or when it is added
to the container, and decrement when the timer fires or the object is
removed from the container.

That way, your stored pointer is always good.


_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev

Reply via email to