Commit 1857a44c authored by gabime's avatar gabime

Fix #1215

parent bd9e1475
......@@ -4,6 +4,7 @@
#pragma once
#include "spdlog/tweakme.h"
#include "spdlog/details/null_mutex.h"
#include <atomic>
#include <chrono>
......
......@@ -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
}
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment