tRendezvous tester. - plan9port - [fork] Plan 9 from user space (HTM) git clone git://src.adamsgaard.dk/plan9port (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 8af7f5d093773b6a780a4ccfcee04791c221d81a (DIR) parent e767dd493091d95e9fed07c927d7ececd93b47ca (HTM) Author: rsc <devnull@localhost> Date: Wed, 1 Oct 2003 00:44:57 +0000 Rendezvous tester. Diffstat: A src/libthread/trend.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+), 0 deletions(-) --- (DIR) diff --git a/src/libthread/trend.c b/src/libthread/trend.c t@@ -0,0 +1,31 @@ +#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]; + + threadcreate(pingpong, c, 16384); + threadcreate(pingpong, c+1, 16384); + sendul(c[0], atoi(argv[1])); +}