#include #include #include #include #include #include int increment(); int decrement(); int getcount(int *thecount); int wastetime(int numus); /* return 1 on failure */ static int waste_random_time(int maxus) { int i; int numus; struct timeval tp1; if (gettimeofday(&tp1,NULL) != 0) { fprintf(stderr,"error in gettimeofday\n"); return 1; } srand48((long)tp1.tv_usec); for (i = 0; i<100; i++) (void)drand48(); numus = (int)(drand48()*maxus); return wastetime(numus); } static void *incthread(void *arg) { int num; int i; char c; num = *(int *)arg; fprintf(stderr,"incthread started: %d\n",num); for (i=0;i