1/* Compiler options: 2#cc: additional_flags=-pthread 3#notarget: cris*-*-elf 4 5 To test sched_yield in the presencs of threads. Core from ex1.c. */ 6 7#include <stddef.h> 8#include <stdio.h> 9#include <unistd.h> 10#include <pthread.h> 11#include <stdlib.h> 12 13static void * 14process (void *arg) 15{ 16 int i; 17 for (i = 0; i < 10; i++) 18 { 19 if (sched_yield () != 0) 20 abort (); 21 } 22 return NULL; 23} 24 25int 26main (void) 27{ 28 int retcode; 29 pthread_t th_a, th_b; 30 void *retval; 31 32 retcode = pthread_create (&th_a, NULL, process, (void *) "a"); 33 if (retcode != 0) 34 abort (); 35 retcode = pthread_create (&th_b, NULL, process, (void *) "b"); 36 if (retcode != 0) 37 abort (); 38 retcode = pthread_join (th_a, &retval); 39 if (retcode != 0) 40 abort (); 41 retcode = pthread_join (th_b, &retval); 42 if (retcode != 0) 43 abort (); 44 printf ("pass\n"); 45 return 0; 46} 47