diff --git a/src/task.c b/src/task.c index f821eed5e6b0fd6d29ebc00882584abb4548ef7c..9440bf88876198487be31ef44cd8f7308c6af9e0 100644 --- a/src/task.c +++ b/src/task.c @@ -443,7 +443,6 @@ void task_unlock(struct task *t) { break; case task_type_drift_gpart: - case task_type_grav_mesh: case task_type_end_grav_force: cell_gunlocktree(ci); break; @@ -538,6 +537,12 @@ void task_unlock(struct task *t) { #endif break; + case task_type_grav_mesh: +#ifdef SWIFT_TASKS_WITHOUT_ATOMICS + cell_gunlocktree(ci); +#endif + break; + case task_type_star_formation: cell_unlocktree(ci); cell_sunlocktree(ci); @@ -623,7 +628,6 @@ int task_lock(struct task *t) { case task_type_drift_gpart: case task_type_end_grav_force: - case task_type_grav_mesh: if (ci->grav.phold) return 0; if (cell_glocktree(ci) != 0) return 0; break; @@ -800,6 +804,14 @@ int task_lock(struct task *t) { #endif break; + case task_type_grav_mesh: +#ifdef SWIFT_TASKS_WITHOUT_ATOMICS + /* Lock the gparts */ + if (ci->grav.phold) return 0; + if (cell_glocktree(ci) != 0) return 0; +#endif + break; + case task_type_star_formation: /* Lock the gas, gravity and star particles */ if (ci->hydro.hold || ci->stars.hold || ci->grav.phold) return 0;