38 lines · 496 B · C
RawDownload
#include <pthread.h>#include <utf.h>#include <fmt.h> pthread_key_t key; voidpexit(void *v){	int s; 	pthread_setspecific(key, (void*)1);	switch(fork()){	case -1:		fprint(2, "fork: %r\n");	case 0:		_exit(0);	default:		wait(&s);	}	pthread_exit(0);} intmain(int argc, char *argv[]){	int i;	pthread_t pid; 	pthread_key_create(&key, 0);	for(i=0;; i++){		print("%d\n", i);		if(pthread_create(&pid, 0, pexit, 0) < 0){			fprint(2, "pthread_create: %r\n");			abort();		}	}}