summaryrefslogtreecommitdiff
path: root/ace/Signal.h
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1999-08-09 13:48:47 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1999-08-09 13:48:47 +0000
commit2df727cd7afeb3f20aef8eb176ce1b7581ad8dac (patch)
tree54f23bc3922216e03cb411e881da7adc1333e92d /ace/Signal.h
parent04fbaa65a993ff5d83483f2ade2a50b2e62e919f (diff)
downloadATCD-2df727cd7afeb3f20aef8eb176ce1b7581ad8dac.tar.gz
ChangeLogTag:Mon Aug 9 07:45:19 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
Diffstat (limited to 'ace/Signal.h')
-rw-r--r--ace/Signal.h42
1 files changed, 32 insertions, 10 deletions
diff --git a/ace/Signal.h b/ace/Signal.h
index bc2c83c240c..887ca09dacb 100644
--- a/ace/Signal.h
+++ b/ace/Signal.h
@@ -239,13 +239,15 @@ public:
// = Set/get the handler associated with a particular signal.
virtual ACE_Event_Handler *handler (int signum);
- // Return the list of <ACE_Sig_Handlers> associated with <signum>.
+ // Return the <ACE_Sig_Handler> associated with <signum>.
- virtual ACE_Event_Handler *handler (int signum, ACE_Event_Handler *);
+ virtual ACE_Event_Handler *handler (int signum,
+ ACE_Event_Handler *);
// Set a new <ACE_Event_Handler> that is associated with <signum>.
// Return the existing handler.
- static void dispatch (int, siginfo_t *, ucontext_t *);
+ static void dispatch (int, siginfo_t *,
+ ucontext_t *);
// Callback routine registered with sigaction(2) that dispatches the
// <handle_signal> method of the appropriate pre-registered
// ACE_Event_Handler.
@@ -259,6 +261,25 @@ public:
protected:
// = These methods and data members are shared by derived classes.
+ virtual ACE_Event_Handler *handler_i (int signum,
+ ACE_Event_Handler *);
+ // Set a new <ACE_Event_Handler> that is associated with <signum>.
+ // Return the existing handler. Does not acquire any locks so that
+ // it can be called from a signal handler, such as <dispatch>.
+
+ virtual int register_handler_i (int signum,
+ ACE_Event_Handler *new_sh,
+ ACE_Sig_Action *new_disp = 0,
+ ACE_Event_Handler **old_sh = 0,
+ ACE_Sig_Action *old_disp = 0);
+ // This implementation method is called by <register_handler> and
+ // <dispatch>. It doesn't do any locking so that it can be called
+ // within a signal handler, such as <dispatch>. It adds a new
+ // <ACE_Event_Handler> and a new sigaction associated with <signum>.
+ // Passes back the existing <ACE_Event_Handler> and its sigaction if
+ // pointers are non-zero. Returns -1 on failure and >= 0 on
+ // success.
+
static int in_range (int signum);
// Check whether the SIGNUM is within the legal range of signals.
@@ -352,13 +373,14 @@ public:
// = Set/get the handler associated with a particular signal.
virtual ACE_Event_Handler *handler (int signum);
- // Return the head of the list of ACE_Sig_Handlers associated
- // with SIGNUM.
-
- virtual ACE_Event_Handler *handler (int signum, ACE_Event_Handler *);
- // Set a new ACE_Event_Handler that is associated with SIGNUM at the
- // head of the list of signals. Return the existing handler that
- // was at the head.
+ // Return the head of the list of <ACE_Sig_Handler>s associated with
+ // SIGNUM.
+
+ virtual ACE_Event_Handler *handler (int signum,
+ ACE_Event_Handler *);
+ // Set a new <ACE_Event_Handler> that is associated with SIGNUM at
+ // the head of the list of signals. Return the existing handler
+ // that was at the head.
static void dispatch (int signum, siginfo_t *, ucontext_t *);
// Callback routine registered with sigaction(2) that dispatches the