rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but request flushing)
This commit is contained in:
parent
6187e219da
commit
3da35f028f
1 changed files with 5 additions and 0 deletions
|
@ -422,6 +422,7 @@ xfidwrite(Xfid *x)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qunlock(&x->active);
|
qunlock(&x->active);
|
||||||
|
recv(x->flushc, nil); /* wake up flushing xfid */
|
||||||
/* no break */
|
/* no break */
|
||||||
case CWflush:
|
case CWflush:
|
||||||
free(r);
|
free(r);
|
||||||
|
@ -661,6 +662,7 @@ xfidread(Xfid *x)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qunlock(&x->active);
|
qunlock(&x->active);
|
||||||
|
recv(x->flushc, nil); /* wake up flushing xfid */
|
||||||
/* no break */
|
/* no break */
|
||||||
case CRflush:
|
case CRflush:
|
||||||
filsyscancel(x);
|
filsyscancel(x);
|
||||||
|
@ -727,6 +729,7 @@ xfidread(Xfid *x)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qunlock(&x->active);
|
qunlock(&x->active);
|
||||||
|
recv(x->flushc, nil); /* wake up flushing xfid */
|
||||||
/* no break */
|
/* no break */
|
||||||
case MRflush:
|
case MRflush:
|
||||||
filsyscancel(x);
|
filsyscancel(x);
|
||||||
|
@ -779,6 +782,7 @@ xfidread(Xfid *x)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qunlock(&x->active);
|
qunlock(&x->active);
|
||||||
|
recv(x->flushc, nil); /* wake up flushing xfid */
|
||||||
/* no break */
|
/* no break */
|
||||||
case MRflush:
|
case MRflush:
|
||||||
filsyscancel(x);
|
filsyscancel(x);
|
||||||
|
@ -919,6 +923,7 @@ xfidread(Xfid *x)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qunlock(&x->active);
|
qunlock(&x->active);
|
||||||
|
recv(x->flushc, nil); /* wake up flushing xfid */
|
||||||
/* no break */
|
/* no break */
|
||||||
case WCRflush:
|
case WCRflush:
|
||||||
filsyscancel(x);
|
filsyscancel(x);
|
||||||
|
|
Loading…
Reference in a new issue