ref: a351bcdccdf5a4273bc8dc3360a48fbb8b8aa9ea
dir: /src/pong2.c/
#include <u.h> #include <libc.h> #include <thread.h> void pingpongthread(void*a) { ulong msg; Channel*c = a; for(;;){ msg = recvul(c); // i.e., recv(c, &msg); msg++; print("%d\n", msg); sendul(c, msg); // i.e., send(c, &msg); } } void threadmain(int, char*[]) { Channel* c; int kickoff; c = chancreate(sizeof(int), 0); threadcreate(pingpongthread, c, 8*1024); threadcreate(pingpongthread, c, 8*1024); kickoff = 0; sendul(c, kickoff); threadexits(nil); }