-int MSG_process_isSuspended(m_process_t process)
-{
- xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
-
- return (process->simdata->suspended);
-}
-
-MSG_error_t __MSG_process_block(void)
-{
- m_process_t process = MSG_process_self();
-
- m_task_t dummy = MSG_TASK_UNINITIALIZED;
- dummy = MSG_task_create("blocked", 0.0, 0, NULL);
-
- PAJE_PROCESS_PUSH_STATE(process,"B");
-
- process->simdata->blocked=1;
- __MSG_task_execute(process,dummy);
- surf_workstation_resource->common_public->suspend(dummy->simdata->compute);
- __MSG_wait_for_computation(process,dummy);
- process->simdata->blocked=0;
-
- if(process->simdata->suspended)
- MSG_process_suspend(process);
-
- MSG_task_destroy(dummy);
-
- return MSG_OK;
-}
-
-MSG_error_t __MSG_process_unblock(m_process_t process)
-{
- simdata_process_t simdata = NULL;
- simdata_task_t simdata_task = NULL;
- int i;
-
- xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
- CHECK_HOST();
-
- simdata = process->simdata;
- if(!(simdata->waiting_task)) {
- xbt_assert0(0,"Process not waiting for anything else. Weird !");
- return MSG_WARNING;
- }
- simdata_task = simdata->waiting_task->simdata;
-
- xbt_assert0(simdata->blocked,"Process not blocked");
-
- surf_workstation_resource->common_public->resume(simdata_task->compute);
-
- PAJE_PROCESS_POP_STATE(process);
-
- MSG_RETURN(MSG_OK);
-}
-
-int __MSG_process_isBlocked(m_process_t process)