Blob
1 #include <lib9.h>2 #include <thread.h>4 Channel *c[3];7 void8 pingpong(void *v)9 {10 int n;11 Channel **c;13 c = v;14 do{15 n = recvul(c[0]);16 sendul(c[1], n-1);17 }while(n > 0);18 exit(0);19 }21 void22 threadmain(int argc, char **argv)23 {24 c[0] = chancreate(sizeof(ulong), 1);25 c[1] = chancreate(sizeof(ulong), 1);26 c[2] = c[0];28 proccreate(pingpong, c, 16384);29 threadcreate(pingpong, c+1, 16384);30 sendul(c[0], atoi(argv[1]));31 }