process->simdata = simdata;
process->data = data;
- xbt_fifo_push(host->simdata->process_list, process);
+ xbt_fifo_unshift(host->simdata->process_list, process);
/* /////////////// FIX du current_process !!! ////////////// */
self = msg_global->current_process;
xbt_context_start(process->simdata->context);
msg_global->current_process = self;
- xbt_fifo_push(msg_global->process_list, process);
- xbt_fifo_push(msg_global->process_to_run, process);
+ xbt_fifo_unshift(msg_global->process_list, process);
+ DEBUG2("Inserting %s(%s) in the to_run list",process->name,
+ host->name);
+ xbt_fifo_unshift(msg_global->process_to_run, process);
PAJE_PROCESS_NEW(process);
xbt_fifo_remove(simdata->host->simdata->process_list,process);
simdata->host = host;
- xbt_fifo_push(host->simdata->process_list,process);
+ xbt_fifo_unshift(host->simdata->process_list,process);
return MSG_OK;
}
simdata_process_t simdata = NULL;
simdata_task_t simdata_task = NULL;
+ XBT_IN2("(%p(%s))", process, process->name);
+
xbt_assert0(((process) && (process->simdata)), "Invalid parameters");
PAJE_PROCESS_PUSH_STATE(process,"S");
simdata_task = simdata->waiting_task->simdata;
simdata->suspended = 1;
- if(simdata->blocked) return MSG_OK;
+ if(simdata->blocked) {
+ XBT_OUT;
+ return MSG_OK;
+ }
xbt_assert0(((simdata_task->compute)||(simdata_task->comm))&&
!((simdata_task->compute)&&(simdata_task->comm)),
MSG_task_destroy(dummy);
}
+ XBT_OUT;
return MSG_OK;
}
xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
CHECK_HOST();
+ XBT_IN2("(%p(%s))", process, process->name);
+
if(process == MSG_process_self()) {
+ XBT_OUT;
MSG_RETURN(MSG_OK);
}
PAJE_PROCESS_POP_STATE(process);
simdata->suspended = 0; /* He'll wake up by itself */
+ XBT_OUT;
MSG_RETURN(MSG_OK);
}
if(!(simdata->waiting_task)) {
xbt_assert0(0,"Process not waiting for anything else. Weird !");
+ XBT_OUT;
return MSG_WARNING;
}
simdata_task = simdata->waiting_task->simdata;
surf_workstation_resource->common_public->resume(simdata_task->comm);
}
+ XBT_OUT;
MSG_RETURN(MSG_OK);
}
surf_workstation_resource->common_public->set_max_duration(dummy->simdata->compute,
max_duration);
__MSG_wait_for_computation(process,dummy);
+ MSG_task_destroy(dummy);
process->simdata->blocked=0;
- if(process->simdata->suspended)
+ if(process->simdata->suspended) {
+ DEBUG0("I've been suspended in the meantime");
MSG_process_suspend(process);
-
- MSG_task_destroy(dummy);
+ DEBUG0("I've been resumed, let's keep going");
+ }
XBT_OUT;
return 1;