#include #include #include enum { Ndflt = 1<<21, Mdflt = 1, Odflt = 10, }; N = Ndflt; M = Mdflt; O = Odflt; Channel *c, *endc; void sendthread(void*) { ulong i; for(i = 0; i < N; i++) sendul(c, i); threadexits(""); } void receivethread(void*) { int i; for(i = 0; i 0) usage(); t = -nsec(); c = chancreate(sizeof(ulong), O); endc = chancreate(sizeof(ulong), 0); proccreate(receivethread, nil, 4*1024); for(i = 0; i < M; i++) proccreate(sendthread, (void*)(uintptr)i, 4*1024); recvul(endc); t += nsec(); print("%lld\n", t); threadexits(""); }