plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

thread.c (464B)


      1 /* Copyright (C) 2003 Russ Cox, Massachusetts Institute of Technology */
      2 /* See COPYRIGHT */
      3 
      4 #include <u.h>
      5 #include <libc.h>
      6 #include <thread.h>
      7 #include <mux.h>
      8 
      9 enum
     10 {
     11 	STACK = 32768
     12 };
     13 
     14 void
     15 muxprocs(Mux *mux)
     16 {
     17 	proccreate(_muxrecvproc, mux, STACK);
     18 	qlock(&mux->lk);
     19 	while(!mux->readq)
     20 		rsleep(&mux->rpcfork);
     21 	qunlock(&mux->lk);
     22 	proccreate(_muxsendproc, mux, STACK);
     23 	qlock(&mux->lk);
     24 	while(!mux->writeq)
     25 		rsleep(&mux->rpcfork);
     26 	qunlock(&mux->lk);
     27 }