Blame


1 8af7f5d0 2003-10-01 devnull #include <lib9.h>
2 8af7f5d0 2003-10-01 devnull #include <thread.h>
3 8af7f5d0 2003-10-01 devnull
4 8af7f5d0 2003-10-01 devnull Channel *c[3];
5 8af7f5d0 2003-10-01 devnull
6 8af7f5d0 2003-10-01 devnull
7 8af7f5d0 2003-10-01 devnull void
8 8af7f5d0 2003-10-01 devnull pingpong(void *v)
9 8af7f5d0 2003-10-01 devnull {
10 8af7f5d0 2003-10-01 devnull int n;
11 8af7f5d0 2003-10-01 devnull Channel **c;
12 8af7f5d0 2003-10-01 devnull
13 8af7f5d0 2003-10-01 devnull c = v;
14 8af7f5d0 2003-10-01 devnull do{
15 8af7f5d0 2003-10-01 devnull n = recvul(c[0]);
16 8af7f5d0 2003-10-01 devnull sendul(c[1], n-1);
17 8af7f5d0 2003-10-01 devnull }while(n > 0);
18 8af7f5d0 2003-10-01 devnull exit(0);
19 8af7f5d0 2003-10-01 devnull }
20 8af7f5d0 2003-10-01 devnull
21 8af7f5d0 2003-10-01 devnull void
22 8af7f5d0 2003-10-01 devnull threadmain(int argc, char **argv)
23 8af7f5d0 2003-10-01 devnull {
24 8af7f5d0 2003-10-01 devnull c[0] = chancreate(sizeof(ulong), 1);
25 8af7f5d0 2003-10-01 devnull c[1] = chancreate(sizeof(ulong), 1);
26 8af7f5d0 2003-10-01 devnull c[2] = c[0];
27 8af7f5d0 2003-10-01 devnull
28 a995e477 2003-10-01 devnull proccreate(pingpong, c, 16384);
29 8af7f5d0 2003-10-01 devnull threadcreate(pingpong, c+1, 16384);
30 8af7f5d0 2003-10-01 devnull sendul(c[0], atoi(argv[1]));
31 8af7f5d0 2003-10-01 devnull }