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
--
⑨