Introduce LLCoros::RMutex, use for SettingsConfig::mRecorderMutex (#1980)

in llerror.cpp.
meow-7.2.2
nat-goodspeed 2024-07-10 11:15:51 -04:00 committed by GitHub
parent 35246a9503
commit 8b59d9bb42
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View File

@ -31,8 +31,9 @@
#include "llexception.h"
#include <boost/fiber/fss.hpp>
#include <boost/fiber/future/promise.hpp>
#include <boost/fiber/future/future.hpp>
#include <boost/fiber/future/promise.hpp>
#include <boost/fiber/recursive_mutex.hpp>
#include "mutex.h"
#include "llsingleton.h"
#include "llinstancetracker.h"
@ -307,6 +308,12 @@ public:
// use mutex, lock, condition_variable suitable for coroutines
using Mutex = boost::fibers::mutex;
using RMutex = boost::fibers::recursive_mutex;
// With C++17, LockType is deprecated: at this point we can directly
// declare 'std::unique_lock lk(some_mutex)' without explicitly stating
// the mutex type. Sadly, making LockType an alias template for
// std::unique_lock doesn't work the same way: Class Template Argument
// Deduction only works for class templates, not alias templates.
using LockType = std::unique_lock<Mutex>;
using cv_status = boost::fibers::cv_status;
using ConditionVariable = boost::fibers::condition_variable;

View File

@ -55,7 +55,6 @@
#include "llsingleton.h"
#include "llstl.h"
#include "lltimer.h"
#include <boost/fiber/recursive_mutex.hpp>
// On Mac, got:
// #error "Boost.Stacktrace requires `_Unwind_Backtrace` function. Define
@ -507,7 +506,7 @@ namespace
LLError::TimeFunction mTimeFunction;
Recorders mRecorders;
boost::fibers::recursive_mutex mRecorderMutex;
LLCoros::RMutex mRecorderMutex;
int mShouldLogCallCounter;