ref: dc14f6285dadf3b83be3b467d38f0f66d33578e3
parent: 5f59367beb6ef75b67dad79c0f4a047a7b0a361a
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
--
⑨