removed wait_empty() from tp and q

This commit is contained in:
gabime 2018-06-01 17:25:23 +03:00
parent 7f6220d960
commit 7815d39807
3 changed files with 5 additions and 14 deletions

View File

@ -71,13 +71,7 @@ public:
pop_cv_.notify_one();
return true;
}
// wait until the queue is empty
void wait_empty()
{
std::unique_lock<std::mutex> lock(queue_mutex_);
pop_cv_.wait(lock, [this] { return this->q_.empty(); });
}
private:
size_t max_items_;

View File

@ -138,11 +138,7 @@ public:
{
return msg_counter_.load(std::memory_order_relaxed);
}
void wait_empty()
{
q_.wait_empty();
}
private:
std::atomic<size_t> msg_counter_; // total # of messages processed in this pool

View File

@ -66,7 +66,7 @@ TEST_CASE("tp->wait_empty() ", "[async]")
using namespace spdlog;
auto test_sink = std::make_shared<sinks::test_sink_mt>();
test_sink->set_delay(std::chrono::milliseconds(5));
size_t messages = 50;
size_t messages = 100;
auto tp = std::make_shared<details::thread_pool>(messages, 2);
auto logger = std::make_shared<async_logger>("as", test_sink, tp, async_overflow_policy::block_retry);
@ -75,7 +75,8 @@ TEST_CASE("tp->wait_empty() ", "[async]")
logger->info("Hello message #{}", i);
}
logger->flush();
tp->wait_empty();
tp.reset();
REQUIRE(test_sink->msg_counter() == messages);
REQUIRE(test_sink->flush_counter() == 1);