git: 9front

Download patch

ref: 84f4e992e0978ec6c739c6f244f31c449d4c62de
parent: d76adb110f09d0b3dfdd090f6bd385ebd66b4194
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);
--