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