#define _GNU_SOURCE #include #include #include #include #include #include #include #define THREADS 500 void * foo (void *arg) { error (0, EGREGIOUS, "Message foo"); error (0, EGREGIOUS, "Int1 %i Int2 %i", 1, 2); return NULL; } int main (int argc, char **argv) { error_t err; pthread_t tid; void * ret; fprintf (stderr, "This should print a bunch of error messages.\n\n"); error (0, EGREGIOUS, "Message start"); error (0, EGREGIOUS, "Int1 %i Int2 %i", 1, 2); error (0, EGREGIOUS, "Message init"); error (0, EGREGIOUS, "Int1 %i Int2 %i", 1, 2); err = pthread_create (&tid, NULL, foo, NULL); if (err) error (0, errno, "pthread_create"); error (0, EGREGIOUS, "Message create"); error (0, EGREGIOUS, "Int1 %i Int2 %i", 1, 2); sched_yield(); error (0, EGREGIOUS, "Message yield"); error (0, EGREGIOUS, "Int1 %i Int2 %i", 1, 2); err = pthread_join (tid, &ret); if (err) error (0, errno, "pthread_join"); error (0, EGREGIOUS, "Message join"); error (0, EGREGIOUS, "Int1 %i Int2 %i", 1, 2); if ((int)ret) error (0, EGREGIOUS, "Main: Thread return value %i should be 0", (int)ret); return 0; }