Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Don't throw the impossible when the user cancels a non-running task
authorChristophe Thiéry <christopho128@gmail.com>
Mon, 25 Jul 2011 12:48:19 +0000 (14:48 +0200)
committerChristophe Thiéry <christopho128@gmail.com>
Mon, 25 Jul 2011 12:48:19 +0000 (14:48 +0200)
src/msg/task.c

index 2908b35..6d3065f 100644 (file)
@@ -189,7 +189,7 @@ MSG_error_t MSG_task_destroy(m_task_t task)
 
 /** \ingroup m_task_management
  * \brief Cancel a #m_task_t.
- * \param task the taskt to cancel. If it was executed or transfered, it 
+ * \param task the task to cancel. If it was executed or transfered, it
           stops the process that were working on it.
  */
 MSG_error_t MSG_task_cancel(m_task_t task)
@@ -198,13 +198,14 @@ MSG_error_t MSG_task_cancel(m_task_t task)
 
   if (task->simdata->compute) {
     SIMIX_req_host_execution_cancel(task->simdata->compute);
-    return MSG_OK;
   }
-  if (task->simdata->comm) {
+  else if (task->simdata->comm) {
     SIMIX_req_comm_cancel(task->simdata->comm);
-    return MSG_OK;
   }
-  THROW_IMPOSSIBLE;
+  else {
+    XBT_DEBUG("Task %p will not be cancelled since it is not running", task);
+  }
+  return MSG_OK;
 }
 
 /** \ingroup m_task_management