plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

commit 8af7f5d093773b6a780a4ccfcee04791c221d81a
parent e767dd493091d95e9fed07c927d7ececd93b47ca
Author: rsc <devnull@localhost>
Date:   Wed,  1 Oct 2003 00:44:57 +0000

Rendezvous tester.

Diffstat:
Asrc/libthread/trend.c | 31+++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/libthread/trend.c b/src/libthread/trend.c @@ -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])); +}