Author: ion
Date: Sat Jul 23 17:17:06 2011
New Revision: 52811

URL: http://svn.reactos.org/svn/reactos?rev=52811&view=rev
Log:
[KERNEL32]: SleepEx forgot to de-activate the SxS frame.

Modified:
    trunk/reactos/dll/win32/kernel32/client/synch.c
    trunk/reactos/lib/rtl/actctx.c

Modified: trunk/reactos/dll/win32/kernel32/client/synch.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/synch.c?rev=52811&r1=52810&r2=52811&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/client/synch.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/client/synch.c [iso-8859-1] Sat Jul 23 
17:17:06 2011
@@ -702,6 +702,9 @@
         errCode = NtDelayExecution((BOOLEAN)bAlertable, TimePtr);
     }
     while ((bAlertable) && (errCode == STATUS_ALERTED));
+    
+    /* Cleanup the activation context */
+    if (bAlertable) RtlDeactivateActivationContextUnsafeFast(&ActCtx);
 
     /* Return the correct code */
     return (errCode == STATUS_USER_APC) ? WAIT_IO_COMPLETION : 0;

Modified: trunk/reactos/lib/rtl/actctx.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/actctx.c?rev=52811&r1=52810&r2=52811&view=diff
==============================================================================
--- trunk/reactos/lib/rtl/actctx.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/actctx.c [iso-8859-1] Sat Jul 23 17:17:06 2011
@@ -2832,7 +2832,10 @@
     frame = &Frame->Frame;
 
     if (!frame)
+    {
+        DPRINT1("No top frame!\n");
         RtlRaiseStatus( STATUS_SXS_INVALID_DEACTIVATION );
+    }
 
     /* pop everything up to and including frame */
     NtCurrentTeb()->ActivationContextStackPointer->ActiveFrame = 
frame->Previous;


Reply via email to