|
|
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(), waiter(), signaler(); ! 13: int isem, i; ! 14: ! 15: if ((isem = screate (0)) == SYSERR) ! 16: kprintf ("waiter: cannot get semaphore\n"); ! 17: else { ! 18: for (i=0; i<NPROC-2; i++) { ! 19: resume ( ! 20: create (waiter, 12000, 20, "waiter", 2, isem, i) ! 21: ); ! 22: if (!(i % 5)) { ! 23: resume ( ! 24: create (signaler,12000,20,"sigler",2,isem,i) ! 25: ); ! 26: } ! 27: } ! 28: for (i=0; i<NPROC-2; i++) ! 29: if (i % 5) ! 30: resume ( ! 31: create (signaler,12000,20,"sigler",2,isem,i) ! 32: ); ! 33: } ! 34: } ! 35: ! 36: prhello() ! 37: { ! 38: kprintf("hello world\n"); ! 39: } ! 40: ! 41: waiter(isem, iwait) ! 42: int isem, iwait; ! 43: { ! 44: kprintf ("waiter #%d: waiting for signal\n", iwait); ! 45: wait (isem); ! 46: kprintf ("waiter #%d: my semaphorer was signalled\n", iwait); ! 47: } ! 48: ! 49: signaler(isem, iwait) ! 50: int isem, iwait; ! 51: { ! 52: kprintf ("signaler #%d: about to signal and die\n", iwait); ! 53: signal (isem); ! 54: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.