|
|
1.1 root 1: /* test.c - main */
2:
3: #include <conf.h>
4: #include <kernel.h>
5:
6: /*------------------------------------------------------------------------
7: * main -- current test routines
8: *------------------------------------------------------------------------
9: */
10: main()
11: {
12: int prhello(), sender(), receiver();
13: int i, isend, irecv;
14:
15: prhello();
16: for (i=0; i<(NPROC-2)/2; i++) {
17: irecv = create (receiver,12000, 19, "receiv", 1, i);
18: if (irecv == SYSERR) {
19: kprintf ("main: create failed\n");
20: break;
21: }
22: else
23: resume (irecv);
24: isend = create (sender, 12000, 19, "sender", 2, i, irecv);
25: if (isend != SYSERR)
26: resume (isend);
27: else {
28: kprintf ("main: create failed\n");
29: break;
30: }
31: }
32: }
33:
34: prhello()
35: {
36: kprintf("hello world\n");
37: }
38:
39: sender(isend, irecv)
40: int isend, irecv;
41: {
42: kprintf ("sender #%d: about to send message %d\n", isend, irecv);
43: send (irecv, isend); /* send my partner its message */
44: }
45:
46: receiver(irecv)
47: int irecv;
48: {
49: int mes = recvclr();
50:
51: kprintf ("receiver #%d: waiting for my message, using %s\n", irecv,
52: (irecv % 2)?"recvclr":"receive");
53: while (mes != irecv) {
54: if (irecv % 2) {
55: mes = recvclr();
56: sleep (0);
57: }
58: else
59: mes = receive();
60: }
61: kprintf ("receiver #%d: got my message\n",irecv);
62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.