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