Fixed async dump_backtrace

This commit is contained in:
gabime
2019-08-25 23:55:35 +03:00
parent 0258c47774
commit f3e379cf78
8 changed files with 87 additions and 16 deletions

View File

@@ -62,6 +62,11 @@ void SPDLOG_INLINE thread_pool::post_flush(async_logger_ptr &&worker_ptr, async_
post_async_msg_(async_msg(std::move(worker_ptr), async_msg_type::flush), overflow_policy);
}
void SPDLOG_INLINE thread_pool::post_dump_backtrace(async_logger_ptr &&worker_ptr, async_overflow_policy overflow_policy)
{
post_async_msg_(async_msg(std::move(worker_ptr), async_msg_type::dump_backtrace), overflow_policy);
}
size_t SPDLOG_INLINE thread_pool::overrun_counter()
{
return q_.overrun_counter();
@@ -109,6 +114,12 @@ bool SPDLOG_INLINE thread_pool::process_next_msg_()
return true;
}
case async_msg_type ::dump_backtrace:
{
incoming_async_msg.worker_ptr->backend_dump_backtrace_();
return true;
}
case async_msg_type::terminate:
{
return false;

View File

@@ -24,7 +24,8 @@ enum class async_msg_type
{
log,
flush,
terminate
terminate,
dump_backtrace
};
#include "spdlog/details/log_msg_buffer.h"
@@ -96,6 +97,7 @@ public:
void post_log(async_logger_ptr &&worker_ptr, const details::log_msg &msg, async_overflow_policy overflow_policy);
void post_flush(async_logger_ptr &&worker_ptr, async_overflow_policy overflow_policy);
void post_dump_backtrace(async_logger_ptr &&worker_ptr, async_overflow_policy overflow_policy);
size_t overrun_counter();
private: