diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-10-05 22:55:10 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-10-05 22:55:10 +0200 |
commit | 3da35f028f4ff5ca619f9b00d549e1b534568223 (patch) | |
tree | 4384216be5ca6b1fa443d0e39a53182d52320b6a /sys/src/cmd/rio/xfid.c | |
parent | 6187e219da80ed8d75c717cd5f7c2f10326c5a81 (diff) |
rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but request flushing)
Diffstat (limited to 'sys/src/cmd/rio/xfid.c')
-rw-r--r-- | sys/src/cmd/rio/xfid.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/src/cmd/rio/xfid.c b/sys/src/cmd/rio/xfid.c index 03f06be95..b505b2f06 100644 --- a/sys/src/cmd/rio/xfid.c +++ b/sys/src/cmd/rio/xfid.c @@ -422,6 +422,7 @@ xfidwrite(Xfid *x) return; } qunlock(&x->active); + recv(x->flushc, nil); /* wake up flushing xfid */ /* no break */ case CWflush: free(r); @@ -661,6 +662,7 @@ xfidread(Xfid *x) return; } qunlock(&x->active); + recv(x->flushc, nil); /* wake up flushing xfid */ /* no break */ case CRflush: filsyscancel(x); @@ -727,6 +729,7 @@ xfidread(Xfid *x) return; } qunlock(&x->active); + recv(x->flushc, nil); /* wake up flushing xfid */ /* no break */ case MRflush: filsyscancel(x); @@ -779,6 +782,7 @@ xfidread(Xfid *x) return; } qunlock(&x->active); + recv(x->flushc, nil); /* wake up flushing xfid */ /* no break */ case MRflush: filsyscancel(x); @@ -919,6 +923,7 @@ xfidread(Xfid *x) return; } qunlock(&x->active); + recv(x->flushc, nil); /* wake up flushing xfid */ /* no break */ case WCRflush: filsyscancel(x); |