diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2008-03-04 14:51:23 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2008-03-04 14:51:23 +0000 |
commit | 99aa8c60282c7b8072eb35eb9ac815702f5bf586 (patch) | |
tree | bda96bf8c3a4c2875a083d7b16720533c8ffeaf4 /ACE/examples/APG/Signals/SigGuard.cpp | |
parent | c4078c377d74290ebe4e66da0b4975da91732376 (diff) | |
download | ATCD-99aa8c60282c7b8072eb35eb9ac815702f5bf586.tar.gz |
undoing accidental deletion
Diffstat (limited to 'ACE/examples/APG/Signals/SigGuard.cpp')
-rw-r--r-- | ACE/examples/APG/Signals/SigGuard.cpp | 43 |
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 |