ref: d8186fe45e2216355dba8386c936b2194f86ac87
parent: f8040789d4800bcbe69691d9db5c516eda77ad3a
author: aiju <aiju@phicode.de>
date: Fri Aug 19 12:24:44 EDT 2011
lib9p reqqueue: remove setjmp shit
--- a/sys/include/9p.h
+++ b/sys/include/9p.h
@@ -46,7 +46,6 @@
Queueelem;
int pid;
Req *cur;
- jmp_buf flush;
};
struct Fid
--- a/sys/src/lib9p/queue.c
+++ b/sys/src/lib9p/queue.c
@@ -5,18 +5,9 @@
#include <9p.h>
static int
-_reqqueuenote(void *uregs, char *note)
+_reqqueuenote(void *, char *note)
{- Reqqueue *q;
-
- if(strcmp(note, "flush") != 0)
- return 0;
- q = *threaddata();
- if(q != nil){- q->cur = nil;
- notejmp(uregs, q->flush, 1);
- }
- return 1;
+ return strcmp(note, "flush") == 0;
}
static void
@@ -43,10 +34,6 @@
memset(&r->qu, 0, sizeof(r->qu));
qunlock(&r->lk);
q->cur = r;
- if(setjmp(q->flush)){- respond(r, "interrupted");
- continue;
- }
qunlock(q);
f(r);
}
@@ -97,17 +84,4 @@
qunlock(q);
respond(r, "interrupted");
}
-}
-
-int
-reqqueueflushed(void)
-{- Reqqueue *q;
-
- q = *threaddata();
- qlock(q);
- if(setjmp(q->flush))
- return 1;
- qunlock(q);
- return 0;
}
--
⑨