|
|
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.