[ros-diffs] [mjmartin] 47249: [win32k] - Check that the thread is not in cleanup before attempting to do anything related to it. Add a couple asserts for sanity.

mjmartin at svn.reactos.org mjmartin at svn.reactos.org
Mon May 17 02:01:26 CEST 2010


Author: mjmartin
Date: Mon May 17 02:01:26 2010
New Revision: 47249

URL: http://svn.reactos.org/svn/reactos?rev=47249&view=rev
Log:
[win32k]
- Check that the thread is not in cleanup before attempting to do anything related to it. Add a couple asserts for sanity.

Modified:
    trunk/reactos/subsystems/win32/win32k/ntuser/timer.c

Modified: trunk/reactos/subsystems/win32/win32k/ntuser/timer.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ntuser/timer.c?rev=47249&r1=47248&r2=47249&view=diff
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/ntuser/timer.c [iso-8859-1] (original)
+++ trunk/reactos/subsystems/win32/win32k/ntuser/timer.c [iso-8859-1] Mon May 17 02:01:26 2010
@@ -368,7 +368,8 @@
     {
        if (pTmr->cmsCountdown < 0)
        {
-          if (!(pTmr->flags & TMRF_READY))
+          ASSERT(pTmr->pti);
+          if ((!(pTmr->flags & TMRF_READY)) && (!(pTmr->pti->TIF_flags & TIF_INCLEANUP)))
           {
              if (pTmr->flags & TMRF_ONESHOT)
                 pTmr->flags |= TMRF_WAITING;
@@ -384,8 +385,8 @@
                 // Set thread message queue for this timer.
                 if (pTmr->pti->MessageQueue)
                 {  // Wakeup thread
-                   if (pTmr->pti->MessageQueue->WakeMask & QS_POSTMESSAGE)
-                      KeSetEvent(pTmr->pti->MessageQueue->NewMessages, IO_NO_INCREMENT, FALSE);
+                   ASSERT(pTmr->pti->MessageQueue->NewMessages != NULL);
+                   KeSetEvent(pTmr->pti->MessageQueue->NewMessages, IO_NO_INCREMENT, FALSE);
                 }
              }
           }




More information about the Ros-diffs mailing list