git: 9front

Download patch

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;
 }
--