update schedule to better support reschedule
diff --git a/scheduler/scheduler.cc b/scheduler/scheduler.cc
index 7bdf2d6..e12b64c 100644
--- a/scheduler/scheduler.cc
+++ b/scheduler/scheduler.cc
@@ -121,6 +121,27 @@
 }
 
 void
+Scheduler::rescheduleTask(const TaskPtr &task)
+{
+  ReadLock lock(m_mutex);
+  TaskMapIt it = m_taskMap.find(tag);
+  if (it != m_taskMap.end())
+  {
+    TaskPtr task = it->second;
+    task->reset();
+    int res = evtimer_add(task->ev(), task->tv());
+    if (res < 0)
+    {
+      cout << "evtimer_add failed for " << task->tag() << endl;
+    }
+  }
+  else
+  {
+    addTask(task);
+  }
+}
+
+void
 Scheduler::rescheduleTask(const Task::Tag &tag)
 {
   ReadLock lock(m_mutex);