tnbrecv - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c02bc16b4b963327a66f7455c23665f55d63b398
 (DIR) parent eacc13ea5cb1f59e3d1365c1149a77c5ef804e7d
 (HTM) Author: rsc <devnull@localhost>
       Date:   Sun, 25 Jun 2006 23:50:02 +0000
       
       nbrecv
       
       Diffstat:
         M include/mux.h                       |      11 ++++++++---
       
       1 file changed, 8 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/include/mux.h b/include/mux.h
       t@@ -12,11 +12,13 @@ typedef struct Muxqueue Muxqueue;
        
        struct Muxrpc
        {
       +        Mux *mux;
                Muxrpc *next;
                Muxrpc *prev;
                Rendez r;
                uint tag;
                void *p;
       +        int waiting;
        };
        
        struct Mux
       t@@ -25,6 +27,7 @@ struct Mux
                uint maxtag;
                int (*send)(Mux*, void*);
                void *(*recv)(Mux*);
       +        void *(*nbrecv)(Mux*);
                int (*gettag)(Mux*, void*);
                int (*settag)(Mux*, void*, uint);
                void *aux;        /* for private use by client */
       t@@ -41,17 +44,19 @@ struct Mux
                uint mwait;
                uint freetag;
                Muxrpc **wait;
       -        uint muxer;
       +        Muxrpc *muxer;
                Muxrpc sleep;
        };
        
        void        muxinit(Mux*);
        void*        muxrpc(Mux*, void*);
       -void        muxthreads(Mux*);
       +void        muxprocs(Mux*);
       +Muxrpc*        muxrpcstart(Mux*, void*);
       +void*        muxrpccanfinish(Muxrpc*);
        
        /* private */
        int        _muxsend(Mux*, void*);
       -void*        _muxrecv(Mux*);
       +void*        _muxrecv(Mux*, int);
        void        _muxsendproc(void*);
        void        _muxrecvproc(void*);
        Muxqueue *_muxqalloc(void);