Blame


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