#include #include #include #include #include #include #include "thread_internal.h" #define ps(s) write(2,s,sizeof(s)-1) #define die(s) do { ps(s); exit(1); } while(0) pthread_t*t; static void*thread(void*arg) { printf("thread %ld %d\n",(long)arg,getpid()); while(1) { pthread_testcancel(); } } static void __gen_thread(int nr) { if (pthread_create(t+nr,0,thread,(void*)nr)) { printf("can't create thread nr %d\n",nr); exit(42); } sleep(1); } int main(int argc,char*argv[]) { int m,i; nice(20); if ((argc<2) || ((m=atoi(argv[1]))==0)) m=16; if ((t=malloc(m*sizeof(pthread_t)))==0) die("no mem....\n"); for (i=0;i