diff options
Diffstat (limited to 'examples/APG/ThreadManagement/Signals2.cpp')
-rw-r--r-- | examples/APG/ThreadManagement/Signals2.cpp | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/examples/APG/ThreadManagement/Signals2.cpp b/examples/APG/ThreadManagement/Signals2.cpp deleted file mode 100644 index 539849262a8..00000000000 --- a/examples/APG/ThreadManagement/Signals2.cpp +++ /dev/null @@ -1,102 +0,0 @@ -// $Id$ - -#include "ace/config-lite.h" -#if defined (ACE_HAS_THREADS) - -#include "ace/OS_NS_time.h" -#include "ace/OS_NS_unistd.h" -#include "ace/Task.h" -#include "ace/Log_Msg.h" -#include "ace/Signal.h" - -class SignalableTask : public ACE_Task<ACE_MT_SYNCH> -{ -public: - virtual int handle_signal (int signum, - siginfo_t * = 0, - ucontext_t * = 0) - { - if (signum == SIGUSR1) - { - ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("(%t) received a %S signal\n"), - signum)); - handle_alert(); - } - - return 0; - } - - virtual int svc (void) - { - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Starting thread\n"))); - - while (1) - { - ACE_Message_Block* mb = 0; - ACE_Time_Value tv (0, 1000); - tv += ACE_OS::time (0); - - int result = this->getq(mb, &tv); - - if (result == -1 && errno == EWOULDBLOCK) - continue; - else - process_message (mb); - } - - ACE_NOTREACHED (return 0); - } - - void handle_alert (); - void process_message (ACE_Message_Block *mb); -}; - -void -SignalableTask::process_message (ACE_Message_Block *) -{ - return; -} - -void -SignalableTask::handle_alert (void) -{ - return; -} - -// Listing 1 code/ch13 -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("(%t) Main thread \n"))); - SignalableTask handler; - handler.activate (THR_NEW_LWP | THR_JOINABLE, 5); - - ACE_Sig_Handler sh; - sh.register_handler (SIGUSR1, &handler); - - ACE_OS::sleep (1); // Allow threads to start - - for (int i = 0; i < 5; i++) - ACE_OS::kill (ACE_OS::getpid (), SIGUSR1); - handler.wait (); - return 0; -} -// Listing 1 - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Task<ACE_MT_SYNCH>; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -pragma instantiate ACE_Task<ACE_MT_SYNCH>; -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - -#else -#include "ace/OS_main.h" -#include "ace/OS_NS_stdio.h" - -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - ACE_OS::puts (ACE_TEXT ("This example requires threads.")); - return 0; -} - -#endif /* ACE_HAS_THREADS */ |