/* 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) {
- DEBUG1("Canceling waiting task %s", p_simdata->waiting_task->name);
- if (p_simdata->waiting_task->simdata->compute) {
- SIMIX_action_cancel(p_simdata->waiting_task->simdata->compute);
- } else if (p_simdata->waiting_task->simdata->comm) {
+ 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;