Hold signals in MASK for duration of a C++ statement block. Note that a "0" for mask causes all signals to be held. More...
#include <Signal.h>

Public Member Functions | |
| ACE_Sig_Guard (ACE_Sig_Set *mask=0, bool condition=true) | |
| ~ACE_Sig_Guard (void) | |
| Restore blocked signals. | |
| void | dump (void) const |
| Dump the state of an object. | |
Public Attributes | |
| ACE_ALLOC_HOOK_DECLARE | |
| Declare the dynamic allocation hooks. | |
Private Attributes | |
| ACE_Sig_Set | omask_ |
| Original signal mask. | |
| bool | condition_ |
| Guard Condition. | |
Hold signals in MASK for duration of a C++ statement block. Note that a "0" for mask causes all signals to be held.
Definition at line 234 of file Signal.h.
| ACE_Sig_Guard::ACE_Sig_Guard | ( | ACE_Sig_Set * | mask = 0, |
|
| bool | condition = true | |||
| ) |
This is kind of conditional Guard, needed when guard should be activated only when a spcific condition met. When condition == true (default), Guard is activated
Definition at line 225 of file Signal.inl.
: omask_ () , condition_ (condition) { //ACE_TRACE ("ACE_Sig_Guard::ACE_Sig_Guard"); if (!this->condition_) return; #if defined (ACE_LACKS_UNIX_SIGNALS) ACE_UNUSED_ARG (mask); #else // If MASK is 0 then block all signals! if (mask == 0) { # if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK) ACE_OS::sigprocmask (SIG_BLOCK, ACE_OS_Object_Manager::default_mask (), (sigset_t *) this->omask_); # else ACE_OS::thr_sigsetmask (SIG_BLOCK, ACE_OS_Object_Manager::default_mask (), (sigset_t *) this->omask_); # endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */ } else # if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK) ACE_OS::sigprocmask (SIG_BLOCK, (sigset_t *) *mask, (sigset_t *) this->omask_); # else ACE_OS::thr_sigsetmask (SIG_BLOCK, (sigset_t *) *mask, (sigset_t *) this->omask_); # endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */ #endif /* ACE_LACKS_UNIX_SIGNALS */ }
| ACE_Sig_Guard::~ACE_Sig_Guard | ( | void | ) |
Restore blocked signals.
Definition at line 40 of file Signal.cpp.
{
//ACE_TRACE ("ACE_Sig_Guard::~ACE_Sig_Guard");
if (!this->condition_)
return;
#if !defined (ACE_LACKS_UNIX_SIGNALS)
#if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK)
ACE_OS::sigprocmask (SIG_SETMASK,
(sigset_t *) this->omask_,
0);
#else
ACE_OS::thr_sigsetmask (SIG_SETMASK,
(sigset_t *) this->omask_,
0);
#endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */
#endif /* !ACE_LACKS_UNIX_SIGNALS */
}
| void ACE_Sig_Guard::dump | ( | void | ) | const |
Dump the state of an object.
Definition at line 70 of file Signal.cpp.
{
#if defined (ACE_HAS_DUMP)
ACE_TRACE ("ACE_Sig_Guard::dump");
#endif /* ACE_HAS_DUMP */
}
bool ACE_Sig_Guard::condition_ [private] |
ACE_Sig_Set ACE_Sig_Guard::omask_ [private] |
1.7.0