mirror of
https://github.com/Zygo/bees.git
synced 2025-06-15 17:26:15 +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:
@ -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()
|
||||
|
Reference in New Issue
Block a user