1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Fix to GC capture priming

This commit is contained in:
Brian Fiete 2022-01-06 16:50:08 -05:00
parent d778f2dd2f
commit 6c3ae6f181

View file

@ -1388,16 +1388,6 @@ bool BFGC::ScanThreads()
{ {
BP_ZONE("BFGC::ScanThreads"); BP_ZONE("BFGC::ScanThreads");
if (mStackScanIdx == 0)
{
// 'Prime' register capture
intptr regVals[128];
intptr stackPtr = 0;
BfpThreadResult threadResult;
int regValCount = 128;
BfpThread_GetIntRegisters(BfpThread_GetCurrent(), &stackPtr, regVals, &regValCount, &threadResult);
}
mUsingThreadUnlocked = true; mUsingThreadUnlocked = true;
BF_FULL_MEMORY_FENCE(); BF_FULL_MEMORY_FENCE();
@ -2403,6 +2393,16 @@ void BFGC::PerformCollection()
{ {
BP_ZONE("TriggerCollection"); BP_ZONE("TriggerCollection");
if (mCollectIdx == 0)
{
// 'Prime' register capture
intptr regVals[128];
intptr stackPtr = 0;
BfpThreadResult threadResult;
int regValCount = 128;
BfpThread_GetIntRegisters(BfpThread_GetCurrent(), &stackPtr, regVals, &regValCount, &threadResult);
}
int prevMarkId = mCurMarkId; int prevMarkId = mCurMarkId;
DWORD startTick = BFTickCount(); DWORD startTick = BFTickCount();