Added support for SPDLOG_NO_ATOMIC_LEVELS in tweakme.h

This commit is contained in:
gabime 2016-04-10 01:37:11 +03:00
parent d0120b48c5
commit 974379c9be
6 changed files with 39 additions and 10 deletions

View File

@ -5,17 +5,20 @@
#pragma once
#include <string>
#include <initializer_list>
#include <chrono>
#include <memory>
#include <atomic>
#include <exception>
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
#include <codecvt>
#include <locale>
#endif
#include <spdlog/details/null_mutex.h>
//visual studio does not support noexcept yet
#ifndef _MSC_VER
#define SPDLOG_NOEXCEPT noexcept
@ -23,7 +26,6 @@
#define SPDLOG_NOEXCEPT throw()
#endif
namespace spdlog
{
@ -39,7 +41,11 @@ using log_clock = std::chrono::system_clock;
using sink_ptr = std::shared_ptr < sinks::sink >;
using sinks_init_list = std::initializer_list < sink_ptr >;
using formatter_ptr = std::shared_ptr<spdlog::formatter>;
#if defined(SPDLOG_NO_ATOMIC_LEVELS)
using atomic_level = details::null_atomic_int;
#else
using atomic_level = std::atomic_int;
#endif
//Log level enum
namespace level

View File

@ -7,7 +7,6 @@
#include <spdlog/logger.h>
#include <atomic>
#include <memory>
#include <string>

View File

@ -5,7 +5,8 @@
#pragma once
// null, no cost mutex
#include <atomic>
// null, no cost dummy "mutex" and dummy "atomic" int
namespace spdlog
{
@ -20,5 +21,25 @@ struct null_mutex
return true;
}
};
struct null_atomic_int
{
int value;
null_atomic_int() = default;
null_atomic_int(int val):value(val)
{}
int load(std::memory_order) const
{
return value;
}
void store(int val)
{
value = val;
}
};
}
}

View File

@ -18,7 +18,6 @@
#include <vector>
#include <memory>
#include <atomic>
#include <string>
namespace spdlog
@ -103,9 +102,8 @@ protected:
friend details::line_logger;
std::string _name;
std::vector<sink_ptr> _sinks;
formatter_ptr _formatter;
std::atomic_int _level;
formatter_ptr _formatter;
spdlog::atomic_level _level;
};
}

View File

@ -53,6 +53,12 @@
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to avoid spdlog's usage of atomic log levels
// Use only if your code never modifies a logger's log levels concurrently.
// #define SPDLOG_NO_ATOMIC_LEVELS
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to enable usage of wchar_t for file names on Windows.
// #define SPDLOG_WCHAR_FILENAMES

View File

@ -1 +0,0 @@
*.txt