-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), name, 0);
- dummy->simdata->action_block=1;
-
- /* process which will wake up when this system action finish */
- dummy->simdata->cond_process = process;
-
- 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);
- dummy->simdata->timeout_cond = process->simdata->cond;
- }
- __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");
- }
-
- return 1;
-}
-
-void __SIMIX_process_unblock(smx_process_t process)
-{
- simdata_process_t simdata = NULL;
- simdata_action_t simdata_action = NULL;
-
- xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
-
- simdata = process->simdata;
-
- if(!(simdata->block_action)) {
- xbt_assert0(0,"Process is not blocked !");
- return;
- }
-
- simdata_action = simdata->block_action->simdata;
- xbt_assert0(simdata->blocked,"Process not blocked");
- surf_workstation_resource->common_public->resume(simdata_action->surf_action);
- return ;
-
-/*
- simdata_process_t simdata = NULL;
- simdata_task_t simdata_task = NULL;
-
- xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
- CHECK_HOST();
-
- XBT_IN2(": %s unblocking %s", SIMIX_process_self()->name,process->name);
-
- simdata = process->simdata;
- if(!(simdata->waiting_task)) {
- xbt_assert0(0,"Process not waiting for anything else. Weird !");
- XBT_OUT;
- return SIMIX_WARNING;
- }
- simdata_task = simdata->waiting_task->simdata;
-
- xbt_assert0(simdata->blocked,"Process not blocked");
-
- surf_workstation_resource->common_public->resume(simdata_task->compute);
-
- XBT_OUT;
-*/
-}
-
-int __SIMIX_process_isBlocked(smx_process_t process)