diff --git a/distrib/distrib.cc b/distrib/distrib.cc index d2a12c9..e6590d1 100644 --- a/distrib/distrib.cc +++ b/distrib/distrib.cc @@ -374,6 +374,16 @@ int distrib::getTask() m_next_task++; } pthread_mutex_unlock(&m_task_mutex); + if (task == -1) + { + pthread_mutex_lock(&m_tasks_in_progress_mutex); + std::map::const_iterator it = m_tasks_in_progress.begin(); + if (it != m_tasks_in_progress.end()) + { + task = it->first; + } + pthread_mutex_unlock(&m_tasks_in_progress_mutex); + } if (task > -1) startTask(task); }