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

unix.superglobalmegacorp.com

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