diff --git a/src/cell.c b/src/cell.c index 82bc26926524b9e8b7ded41ec579d7596d019261..5c1de13bcd669087f81fa75b0a65decbb5ec803f 100644 --- a/src/cell.c +++ b/src/cell.c @@ -1305,10 +1305,12 @@ int cell_unskip_tasks(struct cell *c, struct scheduler *s) { if (l == NULL) error("Missing link to send_xv task."); scheduler_activate(s, l->t); + /* Drift both cells, the foreign one at the level which it is sent. */ if (l->t->ci->drift) scheduler_activate(s, l->t->ci->drift); else error("Drift task missing !"); + scheduler_activate(s, cj->drift); if (cell_is_active(cj, e)) { for (l = cj->send_rho; l != NULL && l->t->cj->nodeID != ci->nodeID; @@ -1341,10 +1343,12 @@ int cell_unskip_tasks(struct cell *c, struct scheduler *s) { if (l == NULL) error("Missing link to send_xv task."); scheduler_activate(s, l->t); + /* Drift both cells, the foreign one at the level which it is sent. */ if (l->t->ci->drift) scheduler_activate(s, l->t->ci->drift); else error("Drift task missing !"); + scheduler_activate(s, ci->drift); if (cell_is_active(ci, e)) { for (l = ci->send_rho; l != NULL && l->t->cj->nodeID != cj->nodeID; diff --git a/src/engine.c b/src/engine.c index 687093cace1c8b60e8abe02233adea86d18defb4..128d445b58a47dfcd34f00aa4c630d268a0e384a 100644 --- a/src/engine.c +++ b/src/engine.c @@ -2528,10 +2528,12 @@ void engine_marktasks_mapper(void *map_data, int num_elements, if (l == NULL) error("Missing link to send_xv task."); scheduler_activate(s, l->t); + /* Drift both cells, the foreign one at the level which it is sent. */ if (l->t->ci->drift) scheduler_activate(s, l->t->ci->drift); else error("Drift task missing !"); + scheduler_activate(s, cj->drift); if (cell_is_active(cj, e)) { for (l = cj->send_rho; l != NULL && l->t->cj->nodeID != ci->nodeID; @@ -2564,10 +2566,12 @@ void engine_marktasks_mapper(void *map_data, int num_elements, if (l == NULL) error("Missing link to send_xv task."); scheduler_activate(s, l->t); + /* Drift both cells, the foreign one at the level which it is sent. */ if (l->t->ci->drift) scheduler_activate(s, l->t->ci->drift); else error("Drift task missing !"); + scheduler_activate(s, ci->drift); if (cell_is_active(ci, e)) { for (l = ci->send_rho; l != NULL && l->t->cj->nodeID != cj->nodeID;