1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-07-04 23:36:00 +02:00

Fixed GC deadlock on exit when reporting leak

This commit is contained in:
Brian Fiete 2020-10-06 10:55:01 -07:00
parent dbe38df60f
commit d0c9145655

View file

@ -1137,7 +1137,7 @@ void BFGC::ProcessSweepInfo()
//::MessageBoxA(NULL, "Leak", "Leak", MB_OK); //::MessageBoxA(NULL, "Leak", "Leak", MB_OK);
//#if 0 //#if 0
Beefy::String errorStr = StrFormat("%d object memory leak%s detected, details in Output panel.", Beefy::StringT<1024> errorStr = StrFormat("%d object memory leak%s detected, details in Output panel.",
mSweepInfo.mLeakCount, (mSweepInfo.mLeakCount != 1) ? "s" : ""); mSweepInfo.mLeakCount, (mSweepInfo.mLeakCount != 1) ? "s" : "");
gDbgErrorString = errorStr; gDbgErrorString = errorStr;
gDbgErrorString += "\n"; gDbgErrorString += "\n";
@ -1188,7 +1188,10 @@ void BFGC::ProcessSweepInfo()
gBfRtDbgCallbacks.SetErrorString(gDbgErrorString.c_str()); gBfRtDbgCallbacks.SetErrorString(gDbgErrorString.c_str());
gBfRtDbgCallbacks.DebugMessageData_SetupError(errorStr.c_str(), 1); gBfRtDbgCallbacks.DebugMessageData_SetupError(errorStr.c_str(), 1);
BF_DEBUG_BREAK();
mCritSect.Unlock();
BF_DEBUG_BREAK();
mCritSect.Lock();
for (auto obj : mSweepInfo.mLeakObjects) for (auto obj : mSweepInfo.mLeakObjects)
{ {