mirror of
https://github.com/Zygo/bees.git
synced 2025-05-17 21:35:45 +02:00
task: don't hold the mutex while disposing of pending Tasks
In the event that someday Barrier allows users to force execution of its pending tasks prior to the destruction of the BarrierState object, we'll be ready to submit those Tasks for execution without waiting for the BarrierState mutex lock. Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
parent
2f25f89067
commit
090fa39995
@ -791,11 +791,13 @@ namespace crucible {
|
||||
void
|
||||
BarrierState::release()
|
||||
{
|
||||
set<Task> tasks_local;
|
||||
unique_lock<mutex> lock(m_mutex);
|
||||
for (auto i : m_tasks) {
|
||||
swap(tasks_local, m_tasks);
|
||||
lock.unlock();
|
||||
for (const auto &i : tasks_local) {
|
||||
i.run();
|
||||
}
|
||||
m_tasks.clear();
|
||||
}
|
||||
|
||||
BarrierState::~BarrierState()
|
||||
|
Loading…
x
Reference in New Issue
Block a user