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