diff options
Diffstat (limited to 'examples/APG/ThreadManagement/Signals.cpp')
-rw-r--r-- | examples/APG/ThreadManagement/Signals.cpp | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/examples/APG/ThreadManagement/Signals.cpp b/examples/APG/ThreadManagement/Signals.cpp deleted file mode 100644 index 19b7e72e495..00000000000 --- a/examples/APG/ThreadManagement/Signals.cpp +++ /dev/null @@ -1,97 +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" - -// Listing 1 code/ch13 -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; - 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); -}; -// Listing 1 - -void -SignalableTask::process_message (ACE_Message_Block *) -{ -} - -void -SignalableTask::handle_alert () -{ -} - -// Listing 2 code/ch13 -int ACE_TMAIN (int, ACE_TCHAR *[]) -{ - SignalableTask handler; - handler.activate (THR_NEW_LWP | THR_JOINABLE , 5); - - ACE_Sig_Handler sh; - sh.register_handler (SIGUSR1, &handler); - - ACE_OS::sleep (1); - - ACE_Thread_Manager::instance () -> - kill_grp (handler.grp_id (), SIGUSR1); - handler.wait (); - return 0; -} -// Listing 2 -#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 */ |