Do only signal the other side of the pipe if the pipe is connected.
Modified: trunk/reactos/drivers/fs/np/rw.c
_____
Modified: trunk/reactos/drivers/fs/np/rw.c
--- trunk/reactos/drivers/fs/np/rw.c 2005-02-27 17:03:00 UTC (rev
13766)
+++ trunk/reactos/drivers/fs/np/rw.c 2005-02-27 20:38:36 UTC (rev
13767)
@@ -102,7 +102,10 @@
if (Fcb->ReadDataAvailable == 0)
{
KeResetEvent(&Fcb->Event);
- KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE);
+ if (Fcb->PipeState == FILE_PIPE_CONNECTED_STATE)
+ {
+ KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE);
+ }
KeReleaseSpinLock(&Fcb->DataListLock, OldIrql);
if (Information > 0)
{
@@ -190,7 +193,10 @@
if (Information > 0)
{
- KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE);
+ if (Fcb->PipeState == FILE_PIPE_CONNECTED_STATE)
+ {
+ KeSetEvent(&WriterFcb->Event, IO_NO_INCREMENT, FALSE);
+ }
break;
}
}