From: Frederic Suter Date: Wed, 16 Oct 2019 15:26:15 +0000 (+0200) Subject: fix GH#305 X-Git-Tag: v3.25~534 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/73b35ae50cb4b4a9d88fda30c53c629784c1f11a fix GH#305 the allocation of a task was only cancelled for unscheduled parallel typed tasks. Do it for sequential tasks too ... Sorry for the ultra long delay. --- diff --git a/src/simdag/sd_task.cpp b/src/simdag/sd_task.cpp index c1b86b433d..6dcdeafde6 100644 --- a/src/simdag/sd_task.cpp +++ b/src/simdag/sd_task.cpp @@ -772,11 +772,12 @@ void SD_task_unschedule(SD_task_t task) throw std::invalid_argument(simgrid::xbt::string_printf( "Task %s: the state must be SD_SCHEDULED, SD_RUNNABLE, SD_RUNNING or SD_FAILED", task->name)); - if ((task->state == SD_SCHEDULED || task->state == SD_RUNNABLE) /* if the task is scheduled or runnable */ - && ((task->kind == SD_TASK_COMP_PAR_AMDAHL) || (task->kind == SD_TASK_COMM_PAR_MXN_1D_BLOCK))) { - /* Don't free scheduling data for typed tasks */ - __SD_task_destroy_scheduling_data(task); + if (task->state == SD_SCHEDULED || task->state == SD_RUNNABLE) /* if the task is scheduled or runnable */ { task->allocation->clear(); + if (task->kind == SD_TASK_COMP_PAR_AMDAHL || task->kind == SD_TASK_COMM_PAR_MXN_1D_BLOCK) { + /* Don't free scheduling data for typed tasks */ + __SD_task_destroy_scheduling_data(task); + } } if (SD_task_get_state(task) == SD_RUNNING)