- Use TIF in cleanup flag.
authorJames Tabor <james.tabor@reactos.org>
Sat, 3 Oct 2009 23:39:30 +0000 (23:39 +0000)
committerJames Tabor <james.tabor@reactos.org>
Sat, 3 Oct 2009 23:39:30 +0000 (23:39 +0000)
svn path=/trunk/; revision=43276

reactos/subsystems/win32/win32k/main/dllmain.c
reactos/subsystems/win32/win32k/ntuser/input.c
reactos/subsystems/win32/win32k/ntuser/message.c

index 84b92bf..76640ba 100644 (file)
@@ -264,7 +264,7 @@ Win32kThreadCallback(struct _ETHREAD *Thread,
           }
         }
       }
-      Win32Thread->IsExiting = FALSE;
+      Win32Thread->TIF_flags &= ~TIF_INCLEANUP;
       co_IntDestroyCaret(Win32Thread);
       Win32Thread->ppi = PsGetCurrentProcessWin32Process();
       pTeb = NtCurrentTeb();
@@ -283,7 +283,6 @@ Win32kThreadCallback(struct _ETHREAD *Thread,
 
       DPRINT("Destroying W32 thread TID:%d at IRQ level: %lu\n", Thread->Cid.UniqueThread, KeGetCurrentIrql());
 
-      Win32Thread->IsExiting = TRUE;
       Win32Thread->TIF_flags |= TIF_INCLEANUP;
       HOOK_DestroyThreadHooks(Thread);
       UnregisterThreadHotKeys(Thread);
index c70fcb0..946d294 100644 (file)
@@ -1008,7 +1008,7 @@ IntBlockInput(PTHREADINFO W32Thread, BOOL BlockIt)
    PTHREADINFO OldBlock;
    ASSERT(W32Thread);
 
-   if(!W32Thread->Desktop || (W32Thread->IsExiting && BlockIt))
+   if(!W32Thread->Desktop || ((W32Thread->TIF_flags & TIF_INCLEANUP) && BlockIt))
    {
       /*
        * fail blocking if exiting the thread
index 580c4de..a2857f5 100644 (file)
@@ -1513,7 +1513,7 @@ co_IntSendMessageTimeoutSingle(HWND hWnd,
    if (NULL != Win32Thread &&
        Window->MessageQueue == Win32Thread->MessageQueue)
    {
-      if (Win32Thread->IsExiting)
+      if (Win32Thread->TIF_flags & TIF_INCLEANUP)
       {
          /* Never send messages to exiting threads */
           RETURN( FALSE);