diff options
Diffstat (limited to 'test/signal/sigchld.c')
-rw-r--r-- | test/signal/sigchld.c | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/test/signal/sigchld.c b/test/signal/sigchld.c deleted file mode 100644 index 22febaca7..000000000 --- a/test/signal/sigchld.c +++ /dev/null @@ -1,68 +0,0 @@ -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <stdio.h> -#include <sys/signal.h> -#include <sys/wait.h> -#include <unistd.h> - - -#ifdef __ARCH_USE_MMU__ - -static void test_handler(int signo) -{ - write(1, "caught SIGCHLD\n", 15); - return; -} - -int main(void) -{ - pid_t mypid; - struct sigaction siga; - static sigset_t set; - - /* Set up sighandling */ - sigfillset(&set); - siga.sa_handler = test_handler; - siga.sa_mask = set; - siga.sa_flags = 0; - if (sigaction(SIGCHLD, &siga, (struct sigaction *)NULL) != 0) { - fprintf(stderr, "sigaction choked: %s!", strerror(errno)); - exit(EXIT_FAILURE); - } - - /* Setup a child process to exercise the sig handling for us */ - mypid = getpid(); - if (fork() == 0) { - int i; - - for (i=0; i < 3; i++) { - sleep(2); - kill(mypid, SIGCHLD); - } - _exit(EXIT_SUCCESS); - } - - - /* Wait for signals */ - write(1, "waiting for a SIGCHLD\n",22); - for(;;) { - sleep(10); - if (waitpid(-1, NULL, WNOHANG | WUNTRACED) > 0) - break; - write(1, "after sleep\n", 12); - } - - printf("Bye-bye! All done!\n"); - return 0; -} - -#else - -int main(void) -{ - printf("Skipping test on non-mmu host!\n"); - return 0; -} - -#endif |