summaryrefslogtreecommitdiff
path: root/sys/src/cmd/rio/xfid.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-10-05 22:55:10 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-10-05 22:55:10 +0200
commit3da35f028f4ff5ca619f9b00d549e1b534568223 (patch)
tree4384216be5ca6b1fa443d0e39a53182d52320b6a /sys/src/cmd/rio/xfid.c
parent6187e219da80ed8d75c717cd5f7c2f10326c5a81 (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.c5
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);