summaryrefslogtreecommitdiff
path: root/ACE/examples/APG/Signals/SigGuard.cpp
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2008-03-04 14:51:23 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2008-03-04 14:51:23 +0000
commit99aa8c60282c7b8072eb35eb9ac815702f5bf586 (patch)
treebda96bf8c3a4c2875a083d7b16720533c8ffeaf4 /ACE/examples/APG/Signals/SigGuard.cpp
parentc4078c377d74290ebe4e66da0b4975da91732376 (diff)
downloadATCD-99aa8c60282c7b8072eb35eb9ac815702f5bf586.tar.gz
undoing accidental deletion
Diffstat (limited to 'ACE/examples/APG/Signals/SigGuard.cpp')
-rw-r--r--ACE/examples/APG/Signals/SigGuard.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/ACE/examples/APG/Signals/SigGuard.cpp b/ACE/examples/APG/Signals/SigGuard.cpp
new file mode 100644
index 00000000000..679af032904
--- /dev/null
+++ b/ACE/examples/APG/Signals/SigGuard.cpp
@@ -0,0 +1,43 @@
+// $Id$
+
+#include "ace/OS_NS_unistd.h"
+#include "ace/Log_Msg.h"
+#include "ace/Signal.h"
+#include "ace/Sig_Handler.h"
+
+// Listing 1
+class MySignalHandler : public ACE_Event_Handler
+ {
+ public:
+ virtual int handle_signal(int signo,
+ siginfo_t * = 0, ucontext_t * = 0)
+ {
+ ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Signal %d\n"), signo));
+ return 0;
+ }
+ };
+
+int ACE_TMAIN (int, ACE_TCHAR *[])
+{
+
+ MySignalHandler sighandler;
+ ACE_Sig_Handler sh;
+ sh.register_handler (SIGUSR1, &sighandler);
+
+ ACE_Sig_Set ss;
+ ss.sig_add (SIGUSR1);
+
+ ACE_Sig_Guard guard (&ss);
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Entering critical region\n")));
+ ACE_OS::sleep (10);
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("Leaving critical region\n")));
+ }
+
+ // Do other stuff.
+
+ return 0;
+}
+// Listing 1