From 3da35f028f4ff5ca619f9b00d549e1b534568223 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sat, 5 Oct 2013 22:55:10 +0200 Subject: [PATCH] rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but request flushing) --- sys/src/cmd/rio/xfid.c | 5 +++++ 1 file changed, 5 insertions(+) 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);