Do only signal the other side of the pipe if the pipe is connected.
authorHartmut Birr <osexpert@googlemail.com>
Sun, 27 Feb 2005 20:38:36 +0000 (20:38 +0000)
committerHartmut Birr <osexpert@googlemail.com>
Sun, 27 Feb 2005 20:38:36 +0000 (20:38 +0000)
svn path=/trunk/; revision=13767

reactos/drivers/fs/np/rw.c

index f7ff3a5..c52403b 100644 (file)
@@ -102,7 +102,10 @@ NpfsRead(PDEVICE_OBJECT DeviceObject,
       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 @@ NpfsRead(PDEVICE_OBJECT DeviceObject,
 
          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;
            }
        }