Annotation of xinu/sys/TEST/test.c.mes, revision 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(), 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: }

unix.superglobalmegacorp.com

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