mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-04 22:11:26 +12:00
logs: use relaxed atomics
May help with optimizations.
This commit is contained in:
parent
3eca2d5d6c
commit
ec80932c21
2 changed files with 8 additions and 8 deletions
|
@ -169,7 +169,7 @@ namespace logs
|
||||||
|
|
||||||
for (auto&& pair : get_logger()->channels)
|
for (auto&& pair : get_logger()->channels)
|
||||||
{
|
{
|
||||||
pair.second->enabled = level::notice;
|
pair.second->enabled.store(level::notice, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ namespace logs
|
||||||
|
|
||||||
for (auto&& pair : get_logger()->channels)
|
for (auto&& pair : get_logger()->channels)
|
||||||
{
|
{
|
||||||
pair.second->enabled = level::always;
|
pair.second->enabled.store(level::always, std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,7 +191,7 @@ namespace logs
|
||||||
|
|
||||||
while (found.first != found.second)
|
while (found.first != found.second)
|
||||||
{
|
{
|
||||||
found.first->second->enabled = value;
|
found.first->second->enabled.store(value, std::memory_order_relaxed);
|
||||||
found.first++;
|
found.first++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ namespace logs
|
||||||
|
|
||||||
if (found.first != found.second)
|
if (found.first != found.second)
|
||||||
{
|
{
|
||||||
return found.first->second->enabled;
|
return found.first->second->enabled.load(std::memory_order_relaxed);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "util/atomic.hpp"
|
|
||||||
#include "StrFmt.h"
|
#include "StrFmt.h"
|
||||||
#include <climits>
|
#include "util/atomic.hpp"
|
||||||
|
#include <atomic>
|
||||||
|
|
||||||
namespace logs
|
namespace logs
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ namespace logs
|
||||||
const char* const name;
|
const char* const name;
|
||||||
|
|
||||||
// The lowest logging level enabled for this channel (used for early filtering)
|
// The lowest logging level enabled for this channel (used for early filtering)
|
||||||
atomic_t<level> enabled;
|
std::atomic<level> enabled;
|
||||||
|
|
||||||
// Initialize and register channel
|
// Initialize and register channel
|
||||||
channel(const char* name);
|
channel(const char* name);
|
||||||
|
@ -69,7 +69,7 @@ namespace logs
|
||||||
template <std::size_t N, typename... Args>\
|
template <std::size_t N, typename... Args>\
|
||||||
void _sev(const char(&fmt)[N], const Args&... args)\
|
void _sev(const char(&fmt)[N], const Args&... args)\
|
||||||
{\
|
{\
|
||||||
if (UNLIKELY(level::_sev <= enabled))\
|
if (UNLIKELY(level::_sev <= enabled.load(std::memory_order_relaxed)))\
|
||||||
{\
|
{\
|
||||||
static constexpr fmt_type_info type_list[sizeof...(Args) + 1]{fmt_type_info::make<fmt_unveil_t<Args>>()...};\
|
static constexpr fmt_type_info type_list[sizeof...(Args) + 1]{fmt_type_info::make<fmt_unveil_t<Args>>()...};\
|
||||||
msg_##_sev.broadcast(fmt, type_list, u64{fmt_unveil<Args>::get(args)}...);\
|
msg_##_sev.broadcast(fmt, type_list, u64{fmt_unveil<Args>::get(args)}...);\
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue