diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index 99b7f811a4..12980da896 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -55,6 +55,7 @@ #include "llsingleton.h" #include "llstl.h" #include "lltimer.h" +#include // On Mac, got: // #error "Boost.Stacktrace requires `_Unwind_Backtrace` function. Define @@ -511,7 +512,7 @@ namespace LLError::TimeFunction mTimeFunction; Recorders mRecorders; - LLCoros::Mutex mRecorderMutex; + boost::fibers::recursive_mutex mRecorderMutex; int mShouldLogCallCounter; @@ -1055,7 +1056,7 @@ namespace LLError return; } SettingsConfigPtr s = Globals::getInstance()->getSettingsConfig(); - LLCoros::LockType lock(s->mRecorderMutex); + std::unique_lock lock(s->mRecorderMutex); s->mRecorders.push_back(recorder); } @@ -1066,7 +1067,7 @@ namespace LLError return; } SettingsConfigPtr s = Globals::getInstance()->getSettingsConfig(); - LLCoros::LockType lock(s->mRecorderMutex); + std::unique_lock lock(s->mRecorderMutex); s->mRecorders.erase(std::remove(s->mRecorders.begin(), s->mRecorders.end(), recorder), s->mRecorders.end()); } @@ -1115,7 +1116,7 @@ namespace LLError std::shared_ptr findRecorder() { SettingsConfigPtr s = Globals::getInstance()->getSettingsConfig(); - LLCoros::LockType lock(s->mRecorderMutex); + std::unique_lock lock(s->mRecorderMutex); return findRecorderPos(s).first; } @@ -1126,7 +1127,7 @@ namespace LLError bool removeRecorder() { SettingsConfigPtr s = Globals::getInstance()->getSettingsConfig(); - LLCoros::LockType lock(s->mRecorderMutex); + std::unique_lock lock(s->mRecorderMutex); auto found = findRecorderPos(s); if (found.first) { @@ -1232,7 +1233,7 @@ namespace std::string escaped_message; - LLCoros::LockType lock(s->mRecorderMutex); + std::unique_lock lock(s->mRecorderMutex); for (LLError::RecorderPtr& r : s->mRecorders) { // Crash fix