summaryrefslogtreecommitdiff
path: root/ace/Signal.cpp
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1997-08-30 21:43:06 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1997-08-30 21:43:06 +0000
commitbcdbb84f6e916d82dae91dcab38ffc01389d1dc4 (patch)
tree68f38ce76cc098cb0aa795700501c5eb1068c026 /ace/Signal.cpp
parent6a4d079a1330b91c50af8909ddd673f65e667fec (diff)
downloadATCD-bcdbb84f6e916d82dae91dcab38ffc01389d1dc4.tar.gz
*** empty log message ***
Diffstat (limited to 'ace/Signal.cpp')
-rw-r--r--ace/Signal.cpp25
1 files changed, 22 insertions, 3 deletions
diff --git a/ace/Signal.cpp b/ace/Signal.cpp
index 6b4d69a7af5..34235a124e0 100644
--- a/ace/Signal.cpp
+++ b/ace/Signal.cpp
@@ -145,6 +145,25 @@ ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
ACE_OS::sigaction (signum, &this->sa_, 0);
}
+ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
+ int signum,
+ ACE_Sig_Set &sig_mask,
+ int sig_flags)
+{
+ // ACE_TRACE ("ACE_Sig_Action::ACE_Sig_Action");
+ this->sa_.sa_flags = sig_flags;
+
+ // Structure assignment...
+ this->sa_.sa_mask = sig_mask.sigset ();
+
+#if !defined(ACE_HAS_TANDEM_SIGNALS)
+ this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
+#else
+ this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
+#endif /* !ACE_HAS_TANDEM_SIGNALS */
+ ACE_OS::sigaction (signum, &this->sa_, 0);
+}
+
ACE_ALLOC_HOOK_DEFINE(ACE_Sig_Handler)
void
@@ -246,7 +265,7 @@ ACE_Sig_Handler::remove_handler (int signum,
if (ACE_Sig_Handler::in_range (signum))
{
- ACE_Sig_Action sa (SIG_DFL, 0, -1); // Define the default disposition.
+ ACE_Sig_Action sa (SIG_DFL, (sigset_t *) 0); // Define the default disposition.
if (new_disp == 0)
new_disp = &sa;
@@ -284,7 +303,7 @@ ACE_Sig_Handler::dispatch (int signum,
if (eh != 0 && eh->handle_signal (signum, siginfo, ucontext) == -1)
{
// Define the default disposition.
- ACE_Sig_Action sa (SIG_DFL, 0, -1);
+ ACE_Sig_Action sa (SIG_DFL, (sigset_t *) 0);
ACE_Sig_Handler::signal_handlers_[signum] = 0;
@@ -586,7 +605,7 @@ ACE_Sig_Handlers::remove_handler (int signum,
// register the new disposition or restore the default
// disposition.
- ACE_Sig_Action sa (SIG_DFL, 0, -1);
+ ACE_Sig_Action sa (SIG_DFL, (sigset_t *) 0);
if (new_disp == 0)
new_disp = &sa;