fix bug in rescheduleTask
diff --git a/scheduler/scheduler.h b/scheduler/scheduler.h
index 58a0726..7fe5db0 100644
--- a/scheduler/scheduler.h
+++ b/scheduler/scheduler.h
@@ -31,7 +31,7 @@
 #include <boost/shared_ptr.hpp>
 
 #include <boost/exception/all.hpp>
-#include <boost/thread/shared_mutex.hpp>
+#include <boost/thread/recursive_mutex.hpp>
 #include <boost/thread/thread.hpp>
 #include <math.h>
 #include <map>
@@ -120,7 +120,7 @@
 protected:
   typedef std::map<Task::Tag, TaskPtr> TaskMap;
   typedef std::map<Task::Tag, TaskPtr>::iterator TaskMapIt;
-  typedef boost::shared_mutex Mutex;
+  typedef boost::recursive_mutex Mutex;
   typedef boost::unique_lock<Mutex> ScopedLock;
 
   TaskMap m_taskMap;