Hartmut,
could you please test the attached patch file? If this doesn't fix it I'm going to revert all my changes from trunk.
Best Regards, Thomas
Index: ps/thread.c =================================================================== --- ps/thread.c (revision 14042) +++ ps/thread.c (working copy) @@ -731,10 +731,8 @@ * FUNCTION: Initialize thread managment */ { - PETHREAD FirstThread, ReaperThread; + PETHREAD FirstThread; ULONG i; - KIRQL oldIrql; - NTSTATUS Status;
for (i=0; i < MAXIMUM_PRIORITY; i++) { @@ -776,7 +774,15 @@ DPRINT("FirstThread %x\n",FirstThread);
DoneInitYet = TRUE; +}
+VOID +PsInitReaperThread(VOID) +{ + PETHREAD ReaperThread; + KIRQL oldIrql; + NTSTATUS Status; + /* * Create the reaper thread */ Index: ps/psmgr.c =================================================================== --- ps/psmgr.c (revision 14042) +++ ps/psmgr.c (working copy) @@ -30,6 +30,7 @@ PsInitProcessManagment(); PsInitThreadManagment(); PsInitIdleThread(); + PsInitReaperThread(); PsInitialiseSuspendImplementation(); PsInitialiseW32Call(); } Index: include/internal/ps.h =================================================================== --- include/internal/ps.h (revision 14042) +++ include/internal/ps.h (working copy) @@ -532,6 +532,8 @@ PsApplicationProcessorInit(VOID); VOID PsPrepareForApplicationProcessorInit(ULONG Id); +VOID +PsInitReaperThread(VOID); VOID STDCALL PsIdleThreadMain(PVOID Context);