commit - e767dd493091d95e9fed07c927d7ececd93b47ca
commit + 8af7f5d093773b6a780a4ccfcee04791c221d81a
blob - /dev/null
blob + 6f8adcd5087fadf08f2e8a34e60de4d9fa1bff2e (mode 644)
--- /dev/null
+++ src/libthread/trend.c
+#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]));
+}