#include <lib9.h> | |
#include <thread.h> | |
Channel *c[3]; | |
void | |
pingpong(void *v) | |
{ | |
int n; | |
Channel **c; | |
c = v; | |
do{ | |
n = recvul(c[0]); | |
sendul(c[1], n-1); | |
}while(n > 0); | |
exit(0); | |
} | |
void | |
threadmain(int argc, char **argv) | |
{ | |
c[0] = chancreate(sizeof(ulong), 1); | |
c[1] = chancreate(sizeof(ulong), 1); | |
c[2] = c[0]; | |
proccreate(pingpong, c, 16384); | |
threadcreate(pingpong, c+1, 16384); | |
sendul(c[0], atoi(argv[1])); | |
} |