/* * CS170: preempt1.c * adapted from code by Jim Plank */ #include #include #include #include void *infloop(void *x) { double f; int i, j, *id; id = (int *) x; i = 0; while(1) { printf("thread %d. i = %10d\n", *id, i); f = 1; for (j = 0; j < 50000; j++) { f = f*.99; } i++; } pthread_exit(NULL); } int main() { pthread_t t[2]; pthread_attr_t attr[2]; int i[2]; void *retval; i[0] = 0; i[1] = 1; pthread_create(&(t[0]), NULL, infloop, (void *)&(i[0])); pthread_create(&(t[1]), NULL, infloop, (void *)&(i[1])); pthread_join(t[0], &retval); pthread_join(t[1], &retval); return(0); }