|
|
@ -19,6 +19,7 @@ namespace Bk |
|
|
|
threads_.emplace_back([this] { |
|
|
|
threads_.emplace_back([this] { |
|
|
|
while (true) { |
|
|
|
while (true) { |
|
|
|
std::function<void()> task; |
|
|
|
std::function<void()> task; |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
std::unique_lock<std::mutex> lock(queue_mutex_); |
|
|
|
std::unique_lock<std::mutex> lock(queue_mutex_); |
|
|
|
cv_.wait(lock, [this] { |
|
|
|
cv_.wait(lock, [this] { |
|
|
@ -32,6 +33,7 @@ namespace Bk |
|
|
|
task = std::move(tasks_.front()); |
|
|
|
task = std::move(tasks_.front()); |
|
|
|
tasks_.pop(); |
|
|
|
tasks_.pop(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
task(); |
|
|
|
task(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
@ -65,6 +67,7 @@ namespace Bk |
|
|
|
{ |
|
|
|
{ |
|
|
|
std::unique_lock<std::mutex> lock(queue_mutex_); |
|
|
|
std::unique_lock<std::mutex> lock(queue_mutex_); |
|
|
|
stop_ = true; |
|
|
|
stop_ = true; |
|
|
|
|
|
|
|
cv_.notify_one(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
|
private: |
|
|
|