diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-08-22 03:06:50 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-08-22 03:06:50 +0200 |
commit | dc14f6285dadf3b83be3b467d38f0f66d33578e3 (patch) | |
tree | 59638ac0c2cb82a4155d96286e59b65eaedeac9f | |
parent | 5f59367beb6ef75b67dad79c0f4a047a7b0a361a (diff) |
fix iointerrupt use
-rw-r--r-- | sys/src/cmd/execnet/client.c | 6 | ||||
-rw-r--r-- | sys/src/cmd/webfs/fs.c | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/sys/src/cmd/execnet/client.c b/sys/src/cmd/execnet/client.c index 57414966d..0b90c181c 100644 --- a/sys/src/cmd/execnet/client.c +++ b/sys/src/cmd/execnet/client.c @@ -178,7 +178,7 @@ findrdreq(Client *c, Req *r) *l = r->aux; if(*l == nil) c->erq = l; - respond(r, "flushed"); + respond(r, "interrupted"); break; } } @@ -194,7 +194,7 @@ findwrreq(Client *c, Req *r) *l = r->aux; if(*l == nil) c->ewq = l; - respond(r, "flushed"); + respond(r, "interrupted"); return; } } @@ -252,6 +252,7 @@ clientflush(Req *or, Client *c) if(c->execreq == or){ c->execreq = nil; iointerrupt(c->writerproc); + ioflush(c->writerproc); } findwrreq(c, or); if(c->curw == or){ @@ -298,6 +299,7 @@ writethread(void *a) 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){ diff --git a/sys/src/cmd/webfs/fs.c b/sys/src/cmd/webfs/fs.c index 087390d72..ceb824598 100644 --- a/sys/src/cmd/webfs/fs.c +++ b/sys/src/cmd/webfs/fs.c @@ -515,6 +515,7 @@ fsflush(Req *r) c = client[NUM(path)]; sendp(c->creq, r); iointerrupt(c->io); + ioflush(c->io); } static void |