From e2cd9285f4daad8692e178acb5791246604ef978 Mon Sep 17 00:00:00 2001 From: gabi Date: Fri, 21 Nov 2014 11:17:28 +0200 Subject: [PATCH] async_sink user pointers in the q instead of objects in the queue (faster than moving) --- include/spdlog/sinks/async_sink.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/spdlog/sinks/async_sink.h b/include/spdlog/sinks/async_sink.h index 89b4696a..767c6529 100644 --- a/include/spdlog/sinks/async_sink.h +++ b/include/spdlog/sinks/async_sink.h @@ -53,7 +53,7 @@ namespace sinks class async_sink : public base_sink < details::null_mutex > { public: - using q_type = details::blocking_queue < details::log_msg > ; + using q_type = details::blocking_queue < std::unique_ptr > ; explicit async_sink(const q_type::size_type max_queue_size); @@ -109,7 +109,7 @@ inline spdlog::sinks::async_sink::~async_sink() inline void spdlog::sinks::async_sink::_sink_it(const details::log_msg& msg) { _push_sentry(); - _q.push(msg); + _q.push(std::unique_ptr(new details::log_msg(msg))); } @@ -128,7 +128,7 @@ inline void spdlog::sinks::async_sink::_thread_loop() { try { - s->log(msg); + s->log(*msg); } catch (const std::exception& ex)