mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
- 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. svn path=/trunk/; revision=34230
This commit is contained in:
parent
8aec8d2388
commit
45d38334d5
1 changed files with 5 additions and 2 deletions
|
@ -145,8 +145,8 @@ KiInsertQueueApc(IN PKAPC Apc,
|
|||
/* 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 @@ KiDeliverApc(IN KPROCESSOR_MODE DeliveryMode,
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue