Annotation of xinu/sys/TEST/test.c.sem, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.