ACE
6.1.0
|
Class used to make event handler reference count manipulation exception-safe. More...
#include <Dev_Poll_Reactor.h>
Public Member Functions | |
ACE_Dev_Poll_Handler_Guard (ACE_Event_Handler *eh, bool do_incr=true) | |
Constructor. | |
~ACE_Dev_Poll_Handler_Guard (void) | |
Destructor. | |
void | release (void) |
Private Attributes | |
ACE_Event_Handler * | eh_ |
The event handler being managed. | |
bool | refcounted_ |
true if eh_ is a reference-counted handler. |
Class used to make event handler reference count manipulation exception-safe.
This class makes the reference count manipulation that occurs during an upcall exception-safe. Prior to dispatching the event handler, the reference count is increased. Once the upcall for the given event handler is complete, its reference count will be decreased.
ACE_Dev_Poll_Handler_Guard::ACE_Dev_Poll_Handler_Guard | ( | ACE_Event_Handler * | eh, |
bool | do_incr = true |
||
) | [inline] |
Constructor.
The constructor checks to see if eh is a reference-counted handler and remember that for later. If eh is reference counted, its reference count is incremented unless do_incr is false. do_incr should be false if the reference count was incremented independently of this guard, for example, on a notify handler since the reference count is incremented when the notify is queued.
ACE_Dev_Poll_Handler_Guard::~ACE_Dev_Poll_Handler_Guard | ( | void | ) | [inline] |
Destructor.
The destructor decrements the reference count on the event handler corresponding to the given handle.
void ACE_Dev_Poll_Handler_Guard::release | ( | void | ) | [inline] |
Release the event handler from this guard; when the destructor is called, the handler's reference count will not be decremented.
ACE_Event_Handler* ACE_Dev_Poll_Handler_Guard::eh_ [private] |
The event handler being managed.
bool ACE_Dev_Poll_Handler_Guard::refcounted_ [private] |
true if eh_ is a reference-counted handler.