diff --git a/src/coreclr/vm/ceeload.cpp b/src/coreclr/vm/ceeload.cpp index e1003c8cff6347..d95c02ac94951c 100644 --- a/src/coreclr/vm/ceeload.cpp +++ b/src/coreclr/vm/ceeload.cpp @@ -2618,7 +2618,7 @@ DWORD Module::AllocateDynamicEntry(MethodTable *pMT) DWORD newId = FastInterlockExchangeAdd((LONG*)&m_cDynamicEntries, 1); - if (newId >= m_maxDynamicEntries) + if (newId >= VolatileLoad(&m_maxDynamicEntries)) { CrstHolder ch(&m_Crst); @@ -2637,7 +2637,7 @@ DWORD Module::AllocateDynamicEntry(MethodTable *pMT) memcpy(pNewDynamicStaticsInfo, m_pDynamicStaticsInfo, sizeof(DynamicStaticsInfo) * m_maxDynamicEntries); m_pDynamicStaticsInfo = pNewDynamicStaticsInfo; - m_maxDynamicEntries = maxDynamicEntries; + VolatileStore(&m_maxDynamicEntries, maxDynamicEntries); } }