diff --git a/MemoryModule/MmpTls.cpp b/MemoryModule/MmpTls.cpp index f151b2b..112847a 100644 --- a/MemoryModule/MmpTls.cpp +++ b/MemoryModule/MmpTls.cpp @@ -274,7 +274,6 @@ HookRtlUserThreadStart( VOID NTAPI HookLdrShutdownThread(VOID) { - PLIST_ENTRY entry; PMMP_TLSP_RECORD record = nullptr; // diff --git a/MemoryModule/MmpTlsFiber.cpp b/MemoryModule/MmpTlsFiber.cpp index 2e93e0a..ff3028f 100644 --- a/MemoryModule/MmpTlsFiber.cpp +++ b/MemoryModule/MmpTlsFiber.cpp @@ -20,9 +20,10 @@ CRITICAL_SECTION MmpPostponedTlsLock; DWORD WINAPI MmpReleasePostponedTlsWorker(PVOID) { DWORD code; + DWORD waitTime = INFINITE; while (true) { - WaitForSingleObject(MmpPostponedTlsEvent, INFINITE); + WaitForSingleObject(MmpPostponedTlsEvent, waitTime); EnterCriticalSection(&MmpPostponedTlsLock); @@ -61,6 +62,8 @@ DWORD WINAPI MmpReleasePostponedTlsWorker(PVOID) { } + waitTime = MmpPostponedTlsList.empty() ? INFINITE : 1000; + LeaveCriticalSection(&MmpPostponedTlsLock); }