- Prevent from calling PsTerminateCurrentThread from within an apc if PsTerminateThread was already called.
Modified: trunk/reactos/ntoskrnl/ps/kill.c
--- trunk/reactos/ntoskrnl/ps/kill.c 2005-01-05 19:03:21 UTC (rev 12828) +++ trunk/reactos/ntoskrnl/ps/kill.c 2005-01-05 19:04:25 UTC (rev 12829) @@ -239,6 +239,12 @@
PVOID SystemArgument1, PVOID SystemArgument2) {
+ PETHREAD EThread = PsGetCurrentThread(); + if (EThread->HasTerminated) + { + /* Someone else has already called PsTerminateCurrentThread */ + return; + }
PsTerminateCurrentThread(PsGetCurrentThread()->ExitStatus); }