Home | History | Annotate | Line # | Download | only in c
      1 /* Check that TRT happens when trying to IGN an non-ignorable signal, more than one thread.
      2 #progos: linux
      3 #cc: additional_flags=-pthread
      4 #xerror:
      5 #output: Exiting pid 42 due to signal 9\n
      6 #output: program stopped with signal 4 (*).\n
      7 */
      8 
      9 #include <stdlib.h>
     10 #include <stddef.h>
     11 #include <stdio.h>
     12 #include <unistd.h>
     13 #include <pthread.h>
     14 #include <sys/types.h>
     15 #include <signal.h>
     16 
     17 static void *
     18 process (void *arg)
     19 {
     20   while (1)
     21     sched_yield ();
     22   return NULL;
     23 }
     24 
     25 int main (void)
     26 {
     27   pthread_t th_a;
     28   signal (SIGKILL, SIG_IGN);
     29   if (pthread_create (&th_a, NULL, process, (void *) "a") == 0)
     30     kill (getpid (), SIGKILL);
     31   printf ("xyzzy\n");
     32   exit (0);
     33 }
     34