From f267a8fd86f859b0b8c59b280c4785918450ad31 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 15 Apr 2009 00:02:21 +0000 Subject: [PATCH] node failure now detected and recovered from in distrib::getTask() git-svn-id: svn://anubis/fart/trunk@240 7f9b0f55-74a9-4bce-be96-3c2cd072584d --- distrib/distrib.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) 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); }