Author: fireball
Date: Tue Jul 1 05:40:20 2008
New Revision: 34231
URL: http://svn.reactos.org/svn/reactos?rev=34231&view=rev
Log:
- Fix code comments, in addition to 34230.
See issue #3426 for more details.
Modified:
trunk/reactos/ntoskrnl/ke/apc.c
Modified: trunk/reactos/ntoskrnl/ke/apc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/apc.c?rev=3423…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/apc.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/apc.c [iso-8859-1] Tue Jul 1 05:40:20 2008
@@ -137,7 +137,7 @@
}
else
{
- /* Special APC, find the first Normal APC in the list */
+ /* Special APC, find the last one in the list */
ListHead = &ApcState->ApcListHead[ApcMode];
NextEntry = ListHead->Blink;
while (NextEntry != ListHead)
@@ -148,7 +148,7 @@
/* Is this a No-Normal APC? If so, break */
if (!QueuedApc->NormalRoutine) break;
- /* Move to the next APC in the Queue */
+ /* Move to the previous APC in the Queue */
NextEntry = NextEntry->Blink;
}
Author: fireball
Date: Tue Jul 1 05:08:14 2008
New Revision: 34230
URL: http://svn.reactos.org/svn/reactos?rev=34230&view=rev
Log:
- Fix a problem with normal and special APCs being inserted in the wrong order, spotted by Jury Sidorov. Now Borland Turbo Debugger should be able to debug applications, also it can fix hangs in other applications.
- When delivering kernel APC, set the pending flag to false (by analogy with delivering user APC and clearing its pending flag).
See issue #3426 for more details.
Modified:
trunk/reactos/ntoskrnl/ke/apc.c (contents, props changed)
Modified: trunk/reactos/ntoskrnl/ke/apc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/apc.c?rev=3423…
==============================================================================
--- trunk/reactos/ntoskrnl/ke/apc.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ke/apc.c [iso-8859-1] Tue Jul 1 05:08:14 2008
@@ -145,8 +145,8 @@
/* Get the APC */
QueuedApc = CONTAINING_RECORD(NextEntry, KAPC, ApcListEntry);
- /* Is this a Normal APC? If so, break */
- if (QueuedApc->NormalRoutine) break;
+ /* Is this a No-Normal APC? If so, break */
+ if (!QueuedApc->NormalRoutine) break;
/* Move to the next APC in the Queue */
NextEntry = NextEntry->Blink;
@@ -320,6 +320,9 @@
break;
}
+ /* It's not pending anymore */
+ Thread->ApcState.KernelApcPending = FALSE;
+
/* Get the next Entry */
ApcListEntry = Thread->ApcState.ApcListHead[KernelMode].Flink;
Apc = CONTAINING_RECORD(ApcListEntry, KAPC, ApcListEntry);
Propchange: trunk/reactos/ntoskrnl/ke/apc.c
------------------------------------------------------------------------------
--- svn:needs-lock (original)
+++ svn:needs-lock (removed)
@@ -1,1 +1,0 @@
-*