diff --git a/example/Makefile-all-warn b/example/Makefile-all-warn new file mode 100644 index 00000000..2ba68e2a --- /dev/null +++ b/example/Makefile-all-warn @@ -0,0 +1,22 @@ +#-Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded +CXX ?= g++ +CXX_FLAGS = -Wall -Wextra -pedantic -std=c++11 -pthread -I../include -fmax-errors=1 -Wconversion -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-weak-vtables -Wno-global-constructors +CXX_RELEASE_FLAGS = -O3 -march=native +CXX_DEBUG_FLAGS= -g + +all: example +debug: example-debug + +example: example.cpp + $(CXX) example.cpp -o example $(CXX_FLAGS) $(CXX_RELEASE_FLAGS) $(CXXFLAGS) + + +example-debug: example.cpp + $(CXX) example.cpp -o example-debug $(CXX_FLAGS) $(CXX_DEBUG_FLAGS) $(CXXFLAGS) + +clean: + rm -f *.o logs/*.txt example example-debug + + +rebuild: clean all +rebuild-debug: clean debug diff --git a/include/spdlog/details/async_logger_impl.h b/include/spdlog/details/async_logger_impl.h index b6e86460..3ad70a3b 100644 --- a/include/spdlog/details/async_logger_impl.h +++ b/include/spdlog/details/async_logger_impl.h @@ -107,4 +107,4 @@ inline std::shared_ptr spdlog::async_logger::clone(std::string n cloned->flush_on(this->flush_level()); cloned->set_error_handler(this->error_handler()); return std::move(cloned); -} \ No newline at end of file +} diff --git a/include/spdlog/details/thread_pool.h b/include/spdlog/details/thread_pool.h index 282d67e8..29f5d9d4 100644 --- a/include/spdlog/details/thread_pool.h +++ b/include/spdlog/details/thread_pool.h @@ -198,6 +198,13 @@ private: switch (incoming_async_msg.msg_type) { + case async_msg_type::log: + { + log_msg msg; + incoming_async_msg.to_log_msg(msg); + incoming_async_msg.worker_ptr->backend_log_(msg); + return true; + } case async_msg_type::flush: { incoming_async_msg.worker_ptr->backend_flush_(); @@ -208,16 +215,9 @@ private: { return false; } - - default: - { - log_msg msg; - incoming_async_msg.to_log_msg(msg); - incoming_async_msg.worker_ptr->backend_log_(msg); - return true; } - } - return true; // should not be reached + assert(false && "Unexpected async_msg_type"); + return true; } }; diff --git a/include/spdlog/sinks/sink.h b/include/spdlog/sinks/sink.h index cb8aecb4..9f84c378 100644 --- a/include/spdlog/sinks/sink.h +++ b/include/spdlog/sinks/sink.h @@ -22,7 +22,9 @@ public: explicit sink(std::unique_ptr formatter) : level_(level::trace) - , formatter_(std::move(formatter)){}; + , formatter_(std::move(formatter)) + { + } virtual ~sink() = default; virtual void log(const details::log_msg &msg) = 0; diff --git a/tests/test_misc.cpp b/tests/test_misc.cpp index 7bdfa881..f1fb80e9 100644 --- a/tests/test_misc.cpp +++ b/tests/test_misc.cpp @@ -92,7 +92,6 @@ TEST_CASE("periodic flush", "[periodic_flush]") spdlog::drop_all(); } - TEST_CASE("clone", "[clone]") { using namespace spdlog; @@ -133,6 +132,5 @@ TEST_CASE("clone async", "[clone]") auto test_sink = std::static_pointer_cast(cloned->sinks()[0]); REQUIRE(test_sink->msg_counter() == 2); - spdlog::drop_all(); }