[ros-dev] Re: [ros-svn] [navaraf] 17154: Fix mutex unlocking
in NpfsWaiterThread and add ASSERT.
Hartmut Birr
hartmut.birr at gmx.de
Mon Aug 8 01:53:41 CEST 2005
Filip Navara wrote:
>>
> Does the attached patch make any difference (it just reverts most of
> the changes to rw.c)?
>
> - Filip
>
>------------------------------------------------------------------------
>
>Index: rw.c
>===================================================================
>--- rw.c (revision 17183)
>+++ rw.c (revision 17155)
>@@ -398,25 +398,23 @@
> {
> if (Fcb->ReadDataAvailable == 0)
> {
>+ if (Fcb->PipeState == FILE_PIPE_CONNECTED_STATE)
>+ {
>+ ASSERT(Fcb->OtherSide != NULL);
>+ KeSetEvent(&Fcb->OtherSide->WriteEvent, IO_NO_INCREMENT, FALSE);
>+ }
>+ if (Information > 0 &&
>+ (Fcb->Pipe->ReadMode != FILE_PIPE_BYTE_STREAM_MODE ||
>+ Fcb->PipeState != FILE_PIPE_CONNECTED_STATE))
>+ {
>+ break;
>+ }
> if (Fcb->PipeState != FILE_PIPE_CONNECTED_STATE)
> {
> DPRINT("PipeState: %x\n", Fcb->PipeState);
>- if (Fcb->PipeState == FILE_PIPE_LISTENING_STATE)
>- Status = STATUS_PIPE_LISTENING;
>- else
>- Status = STATUS_PIPE_DISCONNECTED;
>+ Status = STATUS_PIPE_BROKEN;
> break;
> }
>-
>- ASSERT(Fcb->OtherSide != NULL);
>- KeSetEvent(&Fcb->OtherSide->WriteEvent, IO_NO_INCREMENT, FALSE);
>-
>- if (Information > 0 &&
>- Fcb->Pipe->ReadMode != FILE_PIPE_BYTE_STREAM_MODE)
>- {
>- break;
>- }
>-
> ExReleaseFastMutex(&Fcb->DataListLock);
> if (IoIsOperationSynchronous(Irp))
> {
>
>
The patch does fix my problem. Compiling Ros on Ros works again.
- Hartmut
More information about the Ros-dev
mailing list