This commit is contained in:
gabime 2019-09-07 20:11:58 +03:00
parent bd9e1475e2
commit 1857a44c7c
2 changed files with 16 additions and 8 deletions

View File

@ -4,6 +4,7 @@
#pragma once
#include "spdlog/tweakme.h"
#include "spdlog/details/null_mutex.h"
#include <atomic>
#include <chrono>

View File

@ -4,15 +4,16 @@
#pragma once
#include <atomic>
#include <utility>
// null, no cost dummy "mutex" and dummy "atomic" int
namespace spdlog {
namespace details {
struct null_mutex
{
void lock() {}
void unlock() {}
bool try_lock()
void lock() const {}
void unlock() const {}
bool try_lock() const
{
return true;
}
@ -23,18 +24,24 @@ struct null_atomic_int
int value;
null_atomic_int() = default;
explicit null_atomic_int(int val)
: value(val)
explicit null_atomic_int(int new_value)
: value(new_value)
{}
int load(std::memory_order) const
int load(std::memory_order = std::memory_order_relaxed) const
{
return value;
}
void store(int val)
void store(int new_value, std::memory_order = std::memory_order_relaxed)
{
value = val;
value = new_value;
}
int exchange(int new_value, std::memory_order = std::memory_order_relaxed)
{
std::swap(new_value, value);
return new_value; // return value before the call
}
};