summaryrefslogtreecommitdiffstats
path: root/src/lib9/rendez.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/rendez.c')
-rw-r--r--src/lib9/rendez.c42
1 files changed, 0 insertions, 42 deletions
diff --git a/src/lib9/rendez.c b/src/lib9/rendez.c
deleted file mode 100644
index 2b2c1a19..00000000
--- a/src/lib9/rendez.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <u.h>
-#include <libc.h>
-#include "9proc.h"
-
-static Lock rendlock;
-static Uproc *rendhash[RENDHASH];
-
-ulong
-rendezvous(ulong tag, ulong val)
-{
- char c;
- ulong ret;
- Uproc *t, *self, **l;
-
- self = _p9uproc(0);
- lock(&rendlock);
- l = &rendhash[tag%RENDHASH];
- for(t=*l; t; l=&t->rendhash, t=*l){
- if(t->rendtag==tag){
- *l = t->rendhash;
- ret = t->rendval;
- t->rendval = val;
- t->rendtag++;
- c = 0;
- unlock(&rendlock);
- write(t->pipe[1], &c, 1);
- return ret;
- }
- }
-
- /* Going to sleep here. */
- t = self;
- t->rendtag = tag;
- t->rendval = val;
- t->rendhash = *l;
- *l = t;
- unlock(&rendlock);
- do
- read(t->pipe[0], &c, 1);
- while(t->rendtag == tag);
- return t->rendval;
-}