|
|
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: isend = create (sender, 12000, 19, "sender", 1, i);
18: if (isend != SYSERR)
19: resume (isend);
20: else {
21: kprintf ("main: create failed\n");
22: break;
23: }
24: resume (
25: create (receiver,12000, 19, "receiv", 2, isend, i)
26: );
27: }
28: }
29:
30: prhello()
31: {
32: kprintf("hello world\n");
33: }
34:
35: sender(ikey)
36: int ikey;
37: {
38: int irecvpid;
39:
40: irecvpid = receive();
41: kprintf ("sender #%d: about to send message to %d\n", ikey, irecvpid);
42: send (irecvpid, ikey);
43: while (1)
44: ; /* hog cpu time */
45: }
46:
47: receiver(isender, ikey)
48: int isender, ikey;
49: {
50: int mes = recvclr();
51:
52: if (send (isender, getpid()) == SYSERR)
53: kprintf ("receiver: can't send\n");
54: kprintf ("receiver #%d: waiting for my message, using recvtim\n", ikey);
55: while (mes != ikey) /* wait until my sender sends me the key */
56: mes = recvtim(20); /* wait at most 2 seconds */
57: kprintf ("receiver #%d: got my message, killing sender and dying\n",
58: ikey);
59: kill (isender); /* kill off my sender */
60: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.