diff options
author | Andrew Au <andrewau@microsoft.com> | 2018-05-22 15:08:25 -0700 |
---|---|---|
committer | Andrew Au <cshung@gmail.com> | 2018-11-06 18:34:47 -0800 |
commit | c5a69820e866fff47c9f415d872112c58f17a717 (patch) | |
tree | 992cf293773ffb1557f077f72fad6c38b9584fa8 /src/vm/threads.cpp | |
parent | 5fd5ef364611d5b608913d26f6ea003a59239594 (diff) | |
download | coreclr-c5a69820e866fff47c9f415d872112c58f17a717.tar.gz coreclr-c5a69820e866fff47c9f415d872112c58f17a717.tar.bz2 coreclr-c5a69820e866fff47c9f415d872112c58f17a717.zip |
Firing the GC events within the thread suspension
Diffstat (limited to 'src/vm/threads.cpp')
-rw-r--r-- | src/vm/threads.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/vm/threads.cpp b/src/vm/threads.cpp index 7a638a9c66..15e36ca46b 100644 --- a/src/vm/threads.cpp +++ b/src/vm/threads.cpp @@ -5349,7 +5349,7 @@ Thread::ApartmentState Thread::SetApartment(ApartmentState state, BOOL fFireMDAO //---------------------------------------------------------------------------- ThreadStore::ThreadStore() - : m_Crst(CrstThreadStore, (CrstFlags) (CRST_UNSAFE_ANYMODE | CRST_DEBUGGER_THREAD)), + : m_Crst(CrstThreadStore, (CrstFlags) (CRST_UNSAFE_ANYMODE | CRST_REENTRANCY | CRST_DEBUGGER_THREAD)), m_ThreadCount(0), m_MaxThreadCount(0), m_UnstartedThreadCount(0), @@ -5434,6 +5434,18 @@ DEBUG_NOINLINE void ThreadStore::Leave() m_Crst.Leave(); } +void ThreadStore::EnterThreadStoreLockOnly() +{ + WRAPPER_NO_CONTRACT; + s_pThreadStore->Enter(); +} + +void ThreadStore::LeaveThreadStoreLockOnly() +{ + WRAPPER_NO_CONTRACT; + s_pThreadStore->Leave(); +} + void ThreadStore::LockThreadStore() { WRAPPER_NO_CONTRACT; |