summaryrefslogtreecommitdiff
path: root/examples/APG/Signals/SigInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/APG/Signals/SigInfo.cpp')
-rw-r--r--examples/APG/Signals/SigInfo.cpp167
1 files changed, 0 insertions, 167 deletions
diff --git a/examples/APG/Signals/SigInfo.cpp b/examples/APG/Signals/SigInfo.cpp
deleted file mode 100644
index 0a3186e6099..00000000000
--- a/examples/APG/Signals/SigInfo.cpp
+++ /dev/null
@@ -1,167 +0,0 @@
-// $Id$
-
-#include "ace/Log_Msg.h"
-#include "ace/Reactor.h"
-#include "ace/Event_Handler.h"
-#include "ace/Signal.h"
-#include "ace/OS_NS_unistd.h"
-#include "ace/OS_NS_string.h"
-
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
-
-// Listing 1 code/ch11
-class MySignalHandler : public ACE_Event_Handler
-{
-public:
- MySignalHandler () : ACE_Event_Handler()
- { }
-
- // Listing A code/ch11
- int handle_signal (int signum,
- siginfo_t * siginfo = 0,
- ucontext_t * = 0)
- {
- ACE_DEBUG ((LM_INFO, ACE_TEXT ("Received signal [%S]\n"),
- signum));
- if (siginfo == 0)
- {
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("No siginfo_t available for ")
- ACE_TEXT ("signal [%S]\n"),
- signum));
- return 0;
- }
- // Listing A
-#if defined (__linux__)
- // Listing B code/ch11
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("errno for this signal is %d [%s]\n"),
- siginfo->si_errno,
- ACE_OS::strerror (siginfo->si_errno)));
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("signal was sent by process %d")
- ACE_TEXT (" / user %d\n"),
- siginfo->si_pid,
- siginfo->si_uid));
-
- switch (siginfo->si_code)
- {
- case SI_TIMER:
- ACE_DEBUG ((LM_INFO, ACE_TEXT ("Timer expiration\n")));
- break;
-
- case SI_USER:
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("Sent by kill, sigsend or raise\n")));
- break;
-
- case SI_KERNEL:
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("Sent by kernel\n")));
- break;
- // ...
- };
-
- // Listing B
-
- // Listing C code/ch11
- switch (signum)
- {
- case SIGFPE:
- switch (siginfo->si_code)
- {
- case FPE_INTDIV:
- case FPE_FLTDIV:
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("Divide by zero at %@\n"),
- siginfo->si_addr));
- break;
-
- case FPE_INTOVF:
- case FPE_FLTOVF:
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("Numeric overflow at %@\n"),
- siginfo->si_addr));
- break;
-
- // ...
- }
- break;
-
- // Listing C
- // Listing D code/ch11
- case SIGSEGV:
- switch (siginfo->si_code)
- {
- // ...
- };
- break;
- // Listing D
-
- // Listing E code/ch11
- case SIGCHLD:
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("A child process has exited\n")));
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("The child consumed %l/%l time\n"),
- siginfo->si_utime,
- siginfo->si_stime));
- ACE_DEBUG ((LM_INFO,
- ACE_TEXT ("and exited with value %d\n"),
- siginfo->si_status));
- break;
- // ...
- }
- // Listing E
-#endif /* __linux__ */
- return 0;
- }
-};
-// Listing 1
-
-#endif /* ACE_LACKS_UNIX_SIGNALS */
-
-#if !defined (ACE_LACKS_UNIX_SIGNALS)
-
-int ACE_TMAIN (int, ACE_TCHAR *[])
-{
-#if defined (ACE_LACKS_FORK)
- ACE_DEBUG ((LM_DEBUG,
- "This example requires fork()\n"));
-#else
- // Create a child process so that we can test our
- // ability to handle SIGCHLD
-
- // Listing 2 code/ch11
- ACE_Sig_Set signalSet;
- signalSet.fill_set ();
-
- MySignalHandler h1;
- ACE_Reactor::instance ()->register_handler (signalSet, &h1);
- pid_t childPid = ACE_OS::fork ();
- if (childPid == 0) // This is the parent process.
- {
- // Exclude B
- ACE_OS::sleep (10);
- return 100;
- // Exclude B
- }
- ACE_Reactor::instance ()->run_reactor_event_loop ();
- // Listing 2
-
-#endif /* ACE_LACKS_FORK */
-
- return 0;
-}
-
-#else
-
-int
-ACE_TMAIN (int, ACE_TCHAR *[])
-{
- ACE_DEBUG ((LM_DEBUG,
- "This example does not work on this platform.\n"));
- return 1;
-}
-
-#endif /* !ACE_LACKS_UNIX_SIGNALS */