summaryrefslogtreecommitdiff
path: root/ace/Signal.inl
diff options
context:
space:
mode:
authorbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-08-20 15:21:02 +0000
committerbala <bala@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-08-20 15:21:02 +0000
commit41f91904d6aff6683b0c307b6a6d7b34a89a9447 (patch)
treeb856cd20260925081255eaf459a85be809bc2b2d /ace/Signal.inl
parentc787517f144dfc2733ec83fd4c57b5e5e4bb0f9d (diff)
downloadATCD-41f91904d6aff6683b0c307b6a6d7b34a89a9447.tar.gz
ChangeLogTag:Fri Aug 20 15:20:31 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
Diffstat (limited to 'ace/Signal.inl')
-rw-r--r--ace/Signal.inl9
1 files changed, 8 insertions, 1 deletions
diff --git a/ace/Signal.inl b/ace/Signal.inl
index e88f62ca4df..df65d471f1c 100644
--- a/ace/Signal.inl
+++ b/ace/Signal.inl
@@ -228,10 +228,14 @@ ACE_Sig_Action::restore_action (int signum, ACE_Sig_Action &oaction)
// Block out the signal MASK until the destructor is called.
ACE_INLINE
-ACE_Sig_Guard::ACE_Sig_Guard (ACE_Sig_Set *mask)
+ACE_Sig_Guard::ACE_Sig_Guard (ACE_Sig_Set *mask,
+ bool condition)
: 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);
@@ -270,6 +274,9 @@ ACE_INLINE
ACE_Sig_Guard::~ACE_Sig_Guard (void)
{
//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,