- SIMIX_process_execution_destroy(synchro);
-}
-
-
-void SIMIX_post_host_execute(smx_synchro_t synchro)
-{
- if (synchro->type == SIMIX_SYNC_EXECUTE && /* FIMXE: handle resource failure
- * for parallel tasks too */
- surf_host_get_state(surf_host_resource_priv(synchro->execution.host)) == SURF_RESOURCE_OFF) {
- /* If the host running the synchro failed, notice it so that the asking
- * process can be killed if it runs on that host itself */
- synchro->state = SIMIX_FAILED;
- } else if (surf_action_get_state(synchro->execution.surf_exec) == SURF_ACTION_FAILED) {
- /* If the host running the synchro didn't fail, then the synchro was
- * canceled */
- synchro->state = SIMIX_CANCELED;
- } else {
- synchro->state = SIMIX_DONE;
- }
-
- if (synchro->execution.surf_exec) {
- surf_action_unref(synchro->execution.surf_exec);
- synchro->execution.surf_exec = NULL;
- }
-
- /* If there are simcalls associated with the synchro, then answer them */
- if (xbt_fifo_size(synchro->simcalls)) {
- SIMIX_execution_finish(synchro);
- }