git: 9front

Download patch

ref: e61060a5fe59b10d8f68e75eb5e5380d8a1b29e4
parent: aa8b82685f1eb826bbfb05d924a80215ec9f8c82
author: cinap_lenrek <cinap_lenrek@localhost>
date: Sun Aug 21 23:06:50 EDT 2011

fix iointerrupt use

--- a/sys/src/cmd/execnet/client.c
+++ b/sys/src/cmd/execnet/client.c
@@ -178,7 +178,7 @@
 			*l = r->aux;
 			if(*l == nil)
 				c->erq = l;
-			respond(r, "flushed");
+			respond(r, "interrupted");
 			break;
 		}
 	}
@@ -194,7 +194,7 @@
 			*l = r->aux;
 			if(*l == nil)
 				c->ewq = l;
-			respond(r, "flushed");
+			respond(r, "interrupted");
 			return;
 		}
 	}
@@ -252,6 +252,7 @@
 		if(c->execreq == or){
 			c->execreq = nil;
 			iointerrupt(c->writerproc);
+			ioflush(c->writerproc);
 		}
 		findwrreq(c, or);
 		if(c->curw == or){
@@ -298,6 +299,7 @@
 		c->wq = r->aux;
 		c->curw = r;
 		n = iowrite(io, c->fd[1], r->ifcall.data, r->ifcall.count);
+		c->curw = nil;
 		if(chatty9p)
 			fprint(2, "io->write returns %d\n", n);
 		if(n >= 0){
--- a/sys/src/cmd/webfs/fs.c
+++ b/sys/src/cmd/webfs/fs.c
@@ -515,6 +515,7 @@
 	c = client[NUM(path)];
 	sendp(c->creq, r);
 	iointerrupt(c->io);
+	ioflush(c->io);
 }
 
 static void
--