tRendezvous tester. - plan9port - [fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port
Log
Files
Refs
README
LICENSE
---
commit 8af7f5d093773b6a780a4ccfcee04791c221d81a
parent e767dd493091d95e9fed07c927d7ececd93b47ca
Author: rsc 
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(-)
---
diff --git a/src/libthread/trend.c b/src/libthread/trend.c
t@@ -0,0 +1,31 @@
+#include 
+#include 
+
+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]));
+}