[ros-dev] [ros-diffs] [tfaber] 69236: [MSFS] - Use a NULL timeout for infinite waits instead of waiting for 100 ns. CORE-10188 #resolve - Wait for available read data in user mode to handle thread termination - Return S...
Alex Ionescu
ionucu at videotron.ca
Fri Sep 18 03:01:05 UTC 2015
I read the diff backward. I agree with the *actual* change, which is why I
was concerned about the opposite ;-)
Best regards,
Alex Ionescu
On Wed, Sep 16, 2015 at 5:42 AM, Thomas Faber <thomas.faber at reactos.org>
wrote:
> You mean KernelMode->UserMode in the KeWaitForSingleObject call?
> The only purpose of this wait is to fulfill a user request (namely a
> read operation). If the thread performing the read is terminated,
> there's no reason to stick around in msfs until data is available in the
> mailslot. The wait should instead be aborted and the thread allowed
> to terminate, which is exactly what this change will achieve.
>
>
> On 2015-09-16 02:27, Alex Ionescu wrote:
> > I'm not convinced on the user->kernel changes Thomas.
> >
> > Best regards,
> > Alex Ionescu
> >
> > On Tue, Sep 15, 2015 at 5:40 AM, <tfaber at svn.reactos.org> wrote:
> >> --- trunk/reactos/drivers/filesystems/msfs/rw.c [iso-8859-1] (original)
> >> +++ trunk/reactos/drivers/filesystems/msfs/rw.c [iso-8859-1] Tue Sep 15
> >> 09:40:30 2015
> >> @@ -52,16 +53,21 @@
> >>
> >> Length = IoStack->Parameters.Read.Length;
> >> if (Irp->MdlAddress)
> >> - Buffer = MmGetSystemAddressForMdl (Irp->MdlAddress);
> >> + Buffer = MmGetSystemAddressForMdlSafe(Irp->MdlAddress,
> >> NormalPagePriority);
> >> else
> >> Buffer = Irp->UserBuffer;
> >>
> >> + if (Fcb->TimeOut.QuadPart == -1LL)
> >> + Timeout = NULL;
> >> + else
> >> + Timeout = &Fcb->TimeOut;
> >> +
> >> Status = KeWaitForSingleObject(&Fcb->MessageEvent,
> >> UserRequest,
> >> - KernelMode,
> >> + UserMode,
> >> FALSE,
> >> - &Fcb->TimeOut);
> >> - if (NT_SUCCESS(Status))
> >> + Timeout);
> >> + if (Status != STATUS_USER_APC)
> >> {
> >> if (Fcb->MessageCount > 0)
> >> {
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.reactos.org/pipermail/ros-dev/attachments/20150917/4b53a789/attachment.html>
More information about the Ros-dev
mailing list