From 5d4530a734770ba6c64b528b4801fac35895536b Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <matthieu.schaller@durham.ac.uk> Date: Mon, 23 Jul 2018 12:53:12 +0100 Subject: [PATCH] Link the MM task when creating them --- src/engine.c | 13 ++++++------- src/scheduler.c | 12 +++++++++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/engine.c b/src/engine.c index 30dba7d0bf..ea2e9cbd86 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2673,11 +2673,11 @@ void engine_count_and_link_tasks_mapper(void *map_data, int num_elements, #endif /* Link M-M tasks to cells */ - } else if (t_type == task_type_grav_mm) { - atomic_inc(&ci->nr_tasks); - atomic_inc(&cj->nr_tasks); - engine_addlink(e, &ci->grav, t); - engine_addlink(e, &cj->grav, t); + /* } else if (t_type == task_type_grav_mm) { */ + /* atomic_inc(&ci->nr_tasks); */ + /* atomic_inc(&cj->nr_tasks); */ + /* engine_addlink(e, &ci->grav, t); */ + /* engine_addlink(e, &cj->grav, t); */ } } } @@ -3040,8 +3040,7 @@ void engine_make_extra_hydroloop_tasks_mapper(void *map_data, int num_elements, if (t->ci->nodeID == nodeID) { engine_make_hydro_loops_dependencies(sched, t, t2, t->ci, with_cooling); scheduler_addunlock(sched, t2, t->ci->super->end_force); - } else - error("oo"); + } #endif } diff --git a/src/scheduler.c b/src/scheduler.c index be3790beed..bddb9966d7 100644 --- a/src/scheduler.c +++ b/src/scheduler.c @@ -53,6 +53,8 @@ #include "timers.h" #include "version.h" +void engine_addlink(struct engine *e, struct link **l, struct task *t); + /** * @brief Re-set the list of active tasks. */ @@ -806,7 +808,7 @@ static void scheduler_splittask_gravity(struct task *t, struct scheduler *s) { /* Temporarily prevent MPI here */ #ifndef WITH_MPI const struct space *sp = s->space; - const struct engine *e = sp->e; + struct engine *e = sp->e; #endif /* Iterate on this task until we're done with it. */ @@ -885,8 +887,8 @@ static void scheduler_splittask_gravity(struct task *t, struct scheduler *s) { else if (t->type == task_type_pair) { /* Get a handle on the cells involved. */ - const struct cell *ci = t->ci; - const struct cell *cj = t->cj; + struct cell *ci = t->ci; + struct cell *cj = t->cj; /* Foreign task? */ if (ci->nodeID != s->nodeID && cj->nodeID != s->nodeID) { @@ -902,6 +904,10 @@ static void scheduler_splittask_gravity(struct task *t, struct scheduler *s) { t->type = task_type_grav_mm; t->subtype = task_subtype_none; + atomic_inc(&ci->nr_tasks); + atomic_inc(&cj->nr_tasks); + engine_addlink(e, &ci->grav, t); + engine_addlink(e, &cj->grav, t); break; } -- GitLab