From 34d5c0f769fb3fdf59ff54b7b9a89bb00ce42ec5 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Tue, 6 Jun 2017 19:57:04 +0200 Subject: [PATCH] fix(library/mt_task_queue): work around non-recursive lock --- src/library/mt_task_queue.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/library/mt_task_queue.cpp b/src/library/mt_task_queue.cpp index 0770736a95..d86389ca0e 100644 --- a/src/library/mt_task_queue.cpp +++ b/src/library/mt_task_queue.cpp @@ -151,7 +151,8 @@ void mt_task_queue::handle_finished(gtask const & t) { m_waiting.erase(rdep); if (get_state(rdep).load() < task_state::Running) { lean_always_assert(get_data(rdep)); - if (get_data(rdep)->m_flags.m_eager_execution) { + // TODO(gabriel): we need to give up the lock on m_mutex for this + if (false && get_data(rdep)->m_flags.m_eager_execution) { get_state(rdep) = task_state::Running; execute(rdep); handle_finished(rdep); @@ -188,7 +189,8 @@ void mt_task_queue::submit_core(gtask const & t, unsigned prio) { get_data(t)->m_sched_info.reset(new mt_sched_info(prio)); if (check_deps(t)) { if (get_state(t).load() < task_state::Running) { - if (get_data(t)->m_flags.m_eager_execution) { + // TODO(gabriel): we need to give up the lock on m_mutex for this + if (false && get_data(t)->m_flags.m_eager_execution) { get_state(t) = task_state::Running; execute(t); handle_finished(t);