mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add missing concurrency protection in logger (#12325)
This commit is contained in:
parent
0f9c78c3eb
commit
367a2d4b29
2 changed files with 16 additions and 4 deletions
|
@ -152,12 +152,14 @@ void Logger::addOutput(ILogOutput *out)
|
|||
|
||||
void Logger::addOutput(ILogOutput *out, LogLevel lev)
|
||||
{
|
||||
MutexAutoLock lock(m_mutex);
|
||||
m_outputs[lev].push_back(out);
|
||||
m_has_outputs[lev] = true;
|
||||
}
|
||||
|
||||
void Logger::addOutputMasked(ILogOutput *out, LogLevelMask mask)
|
||||
{
|
||||
MutexAutoLock lock(m_mutex);
|
||||
for (size_t i = 0; i < LL_MAX; i++) {
|
||||
if (mask & LOGLEVEL_TO_MASKLEVEL(i)) {
|
||||
m_outputs[i].push_back(out);
|
||||
|
@ -168,6 +170,7 @@ void Logger::addOutputMasked(ILogOutput *out, LogLevelMask mask)
|
|||
|
||||
void Logger::addOutputMaxLevel(ILogOutput *out, LogLevel lev)
|
||||
{
|
||||
MutexAutoLock lock(m_mutex);
|
||||
assert(lev < LL_MAX);
|
||||
for (size_t i = 0; i <= lev; i++) {
|
||||
m_outputs[i].push_back(out);
|
||||
|
@ -177,6 +180,7 @@ void Logger::addOutputMaxLevel(ILogOutput *out, LogLevel lev)
|
|||
|
||||
LogLevelMask Logger::removeOutput(ILogOutput *out)
|
||||
{
|
||||
MutexAutoLock lock(m_mutex);
|
||||
LogLevelMask ret_mask = 0;
|
||||
for (size_t i = 0; i < LL_MAX; i++) {
|
||||
std::vector<ILogOutput *>::iterator it;
|
||||
|
@ -386,6 +390,6 @@ void LogOutputBuffer::logRaw(LogLevel lev, const std::string &line)
|
|||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
m_buffer.push(color.append(line));
|
||||
MutexAutoLock lock(m_buffer_mutex);
|
||||
m_buffer.emplace(color.append(line));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue