Skip to content

Commit

Permalink
Make sure s_currentGenerationTable is safe for profiler attach (dotne…
Browse files Browse the repository at this point in the history
  • Loading branch information
cshung committed Nov 28, 2022
1 parent ebb461a commit d1938dc
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/coreclr/vm/proftoeeinterfaceimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -901,7 +901,7 @@ void GenerationTable::Refresh()

// This is the table of generation bounds updated by the gc
// and read by the profiler.
static GenerationTable *s_currentGenerationTable;
static GenerationTable *s_currentGenerationTable = nullptr;

// This is just so we can assert there's a single writer
#ifdef ENABLE_CONTRACTS
Expand Down Expand Up @@ -931,7 +931,6 @@ void __stdcall UpdateGenerationBounds()
// Notify the profiler of start of the collection
if (CORProfilerTrackGC() || CORProfilerTrackBasicGC())
{

if (s_currentGenerationTable == nullptr)
{
EX_TRY
Expand Down Expand Up @@ -965,7 +964,10 @@ void __stdcall ProfilerAddNewRegion(int generation, uint8_t* rangeStart, uint8_t
#ifdef PROFILING_SUPPORTED
if (CORProfilerTrackGC() || CORProfilerTrackBasicGC())
{
s_currentGenerationTable->AddRecord(generation, rangeStart, rangeEnd, rangeEndReserved);
if (s_currentGenerationTable != nullptr)
{
s_currentGenerationTable->AddRecord(generation, rangeStart, rangeEnd, rangeEndReserved);
}
}
#endif // PROFILING_SUPPORTED
RETURN;
Expand Down

0 comments on commit d1938dc

Please sign in to comment.