discard policies on queue overflow

This commit is contained in:
Denis Ivaykin
2015-01-14 15:35:01 -06:00
parent 0f3f65e07c
commit 365d895482
6 changed files with 31 additions and 19 deletions

View File

@@ -61,9 +61,14 @@ void set_level(level::level_enum log_level);
// Async mode - off by default.
//
enum class async_queue_overflow_policy {
block_retry, // Block / yield / sleep until message can be enqueued
discard_log_msg // Discard the message it enqueue fails
};
// Turn on async mode and set the queue size for each async_logger
void set_async_mode(size_t queue_size, const std::function<void()>& worker_warmup_cb = nullptr);
void set_async_mode(size_t queue_size, const async_queue_overflow_policy overflow_policy = async_queue_overflow_policy::block_retry, const std::function<void()>& worker_warmup_cb = nullptr);
// Turn off async mode
void set_sync_mode();