diff options
author | Koundinya Veluri <kouvel@users.noreply.github.com> | 2018-03-06 11:42:13 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-06 11:42:13 -0800 |
commit | 88e9fb63e5e49ce72a50e2e677fa74d951dc5057 (patch) | |
tree | 9762da02b78efeb1bb532ab63063204520f8b0b1 /src/vm/tieredcompilation.h | |
parent | 063e8d07f80c8e7e026e42b52cbe9addf50c884d (diff) | |
download | coreclr-88e9fb63e5e49ce72a50e2e677fa74d951dc5057.tar.gz coreclr-88e9fb63e5e49ce72a50e2e677fa74d951dc5057.tar.bz2 coreclr-88e9fb63e5e49ce72a50e2e677fa74d951dc5057.zip |
Fix hang on Ctrl+C when tiering is enabled (#16719)
Fix hang on Ctrl+C when tiering is enabled
- When the work thread count is nonzero at the time of Ctrl+C, by the time `TieredCompilationManager::Shutdown(BOOL)` runs (during `DllMain` for process detach), the background worker thread has already been torn down abruptly and it does not get a chance to exit gracefully and set the event, and Shutdown() hangs the process waiting for the event forever.
- It looks like there is no benefit to waiting for the work to complete, fixed by removing the wait and the event
- In the MusicStore benchmark it looks like the arch folder was missing in the 'publish' folder path. In case there is a difference in bin directory layout between the CI dotnet and current dotnet, changed to check for both paths.
Diffstat (limited to 'src/vm/tieredcompilation.h')
-rw-r--r-- | src/vm/tieredcompilation.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/vm/tieredcompilation.h b/src/vm/tieredcompilation.h index 95dbb741fc..2665ad4abf 100644 --- a/src/vm/tieredcompilation.h +++ b/src/vm/tieredcompilation.h @@ -32,8 +32,7 @@ public: void OnMethodCalled(MethodDesc* pMethodDesc, DWORD currentCallCount, BOOL* shouldStopCountingCallsRef, BOOL* wasPromotedToTier1Ref); void OnMethodCallCountingStoppedWithoutTier1Promotion(MethodDesc* pMethodDesc); void AsyncPromoteMethodToTier1(MethodDesc* pMethodDesc); - static void ShutdownAllDomains(); - void Shutdown(BOOL fBlockUntilAsyncWorkIsComplete); + void Shutdown(); static CORJIT_FLAGS GetJitFlags(NativeCodeVersion nativeCodeVersion); private: |