simdata_process_t p_simdata = (simdata_process_t) process->simdata;
simdata_host_t h_simdata=(simdata_host_t)p_simdata->host->simdata;
+
fprintf(stderr,"MSG: %s(%d) on %s: ",
process->name,p_simdata->PID,
p_simdata->host->name);
+
+ if (process->simdata->blocked)
+ fprintf(stderr,"[blocked] ");
+ if (process->simdata->suspended)
+ fprintf(stderr,"[suspended] ");
+
for (i=0; i<msg_global->max_channel; i++) {
if (h_simdata->sleeping[i] == process) {
fprintf(stderr,"Listening on channel %d.\n",i);
simdata_task = simdata->waiting_task->simdata;
+ simdata->suspended = 1;
+ if(simdata->blocked) return MSG_OK;
+
xbt_assert0(((simdata_task->compute)||(simdata_task->comm))&&
- !((simdata_task->comm)&&(simdata_task->comm)),
+ !((simdata_task->compute)&&(simdata_task->comm)),
"Got a problem in deciding which action to choose !");
simdata->suspended = 1;
if(simdata_task->compute)
m_task_t dummy = MSG_TASK_UNINITIALIZED;
dummy = MSG_task_create("suspended", 0.0, 0, NULL);
+ simdata = process->simdata;
simdata->suspended = 1;
__MSG_task_execute(process,dummy);
surf_workstation_resource->extension_public->suspend(dummy->simdata->compute);
-MSG_error_t __MSG_process_block()
+MSG_error_t __MSG_process_block(void)
{
m_process_t process = MSG_process_self();
MSG_error_t __MSG_wait_for_computation(m_process_t process, m_task_t task);
MSG_error_t __MSG_task_wait_event(m_process_t process, m_task_t task);
-MSG_error_t __MSG_process_block();
+MSG_error_t __MSG_process_block(void);
MSG_error_t __MSG_process_unblock(m_process_t process);
int __MSG_process_isBlocked(m_process_t process);