-int __SIMIX_process_block(double max_duration)
-{
-
- smx_process_t process = SIMIX_process_self();
- smx_action_t dummy = NULL;
- char name[] = "dummy";
-
- dummy = SIMIX_execute(SIMIX_process_get_host(process)->simdata->host, name, 0);
- process->simdata->block_action = dummy;
-
- process->simdata->blocked=1;
-
- surf_workstation_resource->common_public->suspend(dummy->simdata->surf_action);
- if(max_duration>=0)
- surf_workstation_resource->common_public->set_max_duration(dummy->simdata->surf_action,
- max_duration);
- __SIMIX_wait_for_action(process,dummy);
- SIMIX_action_destroy(dummy);
- process->simdata->blocked=0;
-
- if(process->simdata->suspended) {
- DEBUG0("I've been suspended in the meantime");
- SIMIX_process_suspend(process);
- DEBUG0("I've been resumed, let's keep going");
- }
-
-/*
- m_task_t dummy = SIMIX_TASK_UNINITIALIZED;
- char blocked_name[512];
- snprintf(blocked_name,512,"blocked [%s] (%s:%s)",
- info, process->name, process->simdata->host->name);
-
- XBT_IN1(": max_duration=%g",max_duration);
-
- dummy = MSG_task_create(blocked_name, 0.0, 0, NULL);
-
- PAJE_PROCESS_PUSH_STATE(process,"B",NULL);
-
- process->simdata->blocked=1;
- __MSG_task_execute(process,dummy);
- surf_workstation_resource->common_public->suspend(dummy->simdata->compute);
- if(max_duration>=0)
- 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) {
- DEBUG0("I've been suspended in the meantime");
- SIMIX_process_suspend(process);
- DEBUG0("I've been resumed, let's keep going");
- }