diff --git a/src/runtime/object.cpp b/src/runtime/object.cpp index f03f0de521..eb0e32bb3d 100644 --- a/src/runtime/object.cpp +++ b/src/runtime/object.cpp @@ -926,6 +926,12 @@ public: } void deactivate_task(lean_task_object * t) { + if (object * v = t->m_value) { + lean_assert(t->m_imp == nullptr); + lean_dec(v); + free_task(t); + return; + } unique_lock lock(m_mutex); if (object * v = t->m_value) { lean_assert(t->m_imp == nullptr);