/* Simulator Data */
simdata->PID = msg_global->PID++;
simdata->waiting_action = NULL;
+ simdata->waiting_task = NULL;
simdata->m_host = host;
simdata->argc = argc;
simdata->argv = argv;
DEBUG3("Killing %s(%d) on %s",
process->name, p_simdata->PID, p_simdata->m_host->name);
+ if (p_simdata->waiting_task && p_simdata->waiting_task->simdata->comm) {
+ SIMIX_communication_cancel(p_simdata->waiting_task->simdata->comm);
+ }
+
if (p_simdata->waiting_action) {
DEBUG1("Canceling waiting task %s",
SIMIX_action_get_name(p_simdata->waiting_action));
SIMIX_action_cancel(p_simdata->waiting_action);
- }
-
+ }
+
xbt_fifo_remove(msg_global->process_list, process);
SIMIX_process_kill(process->simdata->s_process);
MSG_error_t MSG_process_set_data(m_process_t process, void *data)
{
xbt_assert0((process != NULL), "Invalid parameters");
- xbt_assert0((process->data == NULL), "Data already set");
process->data = data;