shithub: riscv

Download patch

ref: 3da35f028f4ff5ca619f9b00d549e1b534568223
parent: 6187e219da80ed8d75c717cd5f7c2f10326c5a81
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Sat Oct 5 18:55:10 EDT 2013

rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but request flushing)

--- a/sys/src/cmd/rio/xfid.c
+++ b/sys/src/cmd/rio/xfid.c
@@ -422,6 +422,7 @@
 				return;
 			}
 			qunlock(&x->active);
+			recv(x->flushc, nil);	/* wake up flushing xfid */
 			/* no break */
 		case CWflush:
 			free(r);
@@ -661,6 +662,7 @@
 				return;
 			}
 			qunlock(&x->active);
+			recv(x->flushc, nil);	/* wake up flushing xfid */
 			/* no break */
 		case CRflush:
 			filsyscancel(x);
@@ -727,6 +729,7 @@
 				return;
 			}
 			qunlock(&x->active);
+			recv(x->flushc, nil);	/* wake up flushing xfid */
 			/* no break */
 		case MRflush:
 			filsyscancel(x);
@@ -779,6 +782,7 @@
 				return;
 			}
 			qunlock(&x->active);
+			recv(x->flushc, nil);	/* wake up flushing xfid */
 			/* no break */
 		case MRflush:
 			filsyscancel(x);
@@ -919,6 +923,7 @@
 				return;
 			}
 			qunlock(&x->active);
+			recv(x->flushc, nil);	/* wake up flushing xfid */
 			/* no break */
 		case WCRflush:
 			filsyscancel(x);
--