From: alegrand Date: Mon, 25 Jul 2005 19:34:51 +0000 (+0000) Subject: bugfix X-Git-Tag: v3.3~3788 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/a8ea21d53b38f705e6839765d45f06e17c319991 bugfix git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@1568 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/msg/gos.c b/src/msg/gos.c index 5c0092e789..162ffac703 100644 --- a/src/msg/gos.c +++ b/src/msg/gos.c @@ -335,22 +335,24 @@ MSG_error_t MSG_task_put(m_task_t task, state=surf_workstation_resource->common_public->action_get_state(task_simdata->comm); } - MSG_task_destroy(task); PAJE_PROCESS_POP_STATE(process); if(state == SURF_ACTION_DONE) { if(surf_workstation_resource->common_public->action_free(task_simdata->comm)) task_simdata->comm = NULL; + MSG_task_destroy(task); MSG_RETURN(MSG_OK); } else if(surf_workstation_resource->extension_public->get_state(local_host->simdata->host) == SURF_CPU_OFF) { if(surf_workstation_resource->common_public->action_free(task_simdata->comm)) task_simdata->comm = NULL; + MSG_task_destroy(task); MSG_RETURN(MSG_HOST_FAILURE); } else { if(surf_workstation_resource->common_public->action_free(task_simdata->comm)) task_simdata->comm = NULL; + MSG_task_destroy(task); MSG_RETURN(MSG_TRANSFER_FAILURE); } } @@ -503,7 +505,7 @@ MSG_error_t MSG_parallel_task_execute(m_task_t task) __MSG_parallel_task_execute(process, task); - if(simdata->compute) + if(task->simdata->compute) res = __MSG_wait_for_computation(process,task); else res = MSG_OK;