Commit c6e81164 authored by Pedro Gonnet's avatar Pedro Gonnet
Browse files

also activate the drift of the local cell in the pair.

parent fba0dd79
...@@ -1305,10 +1305,12 @@ int cell_unskip_tasks(struct cell *c, struct scheduler *s) { ...@@ -1305,10 +1305,12 @@ int cell_unskip_tasks(struct cell *c, struct scheduler *s) {
if (l == NULL) error("Missing link to send_xv task."); if (l == NULL) error("Missing link to send_xv task.");
scheduler_activate(s, l->t); scheduler_activate(s, l->t);
/* Drift both cells, the foreign one at the level which it is sent. */
if (l->t->ci->drift) if (l->t->ci->drift)
scheduler_activate(s, l->t->ci->drift); scheduler_activate(s, l->t->ci->drift);
else else
error("Drift task missing !"); error("Drift task missing !");
scheduler_activate(s, cj->drift);
if (cell_is_active(cj, e)) { if (cell_is_active(cj, e)) {
for (l = cj->send_rho; l != NULL && l->t->cj->nodeID != ci->nodeID; 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) { ...@@ -1341,10 +1343,12 @@ int cell_unskip_tasks(struct cell *c, struct scheduler *s) {
if (l == NULL) error("Missing link to send_xv task."); if (l == NULL) error("Missing link to send_xv task.");
scheduler_activate(s, l->t); scheduler_activate(s, l->t);
/* Drift both cells, the foreign one at the level which it is sent. */
if (l->t->ci->drift) if (l->t->ci->drift)
scheduler_activate(s, l->t->ci->drift); scheduler_activate(s, l->t->ci->drift);
else else
error("Drift task missing !"); error("Drift task missing !");
scheduler_activate(s, ci->drift);
if (cell_is_active(ci, e)) { if (cell_is_active(ci, e)) {
for (l = ci->send_rho; l != NULL && l->t->cj->nodeID != cj->nodeID; for (l = ci->send_rho; l != NULL && l->t->cj->nodeID != cj->nodeID;
......
...@@ -2528,10 +2528,12 @@ void engine_marktasks_mapper(void *map_data, int num_elements, ...@@ -2528,10 +2528,12 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
if (l == NULL) error("Missing link to send_xv task."); if (l == NULL) error("Missing link to send_xv task.");
scheduler_activate(s, l->t); scheduler_activate(s, l->t);
/* Drift both cells, the foreign one at the level which it is sent. */
if (l->t->ci->drift) if (l->t->ci->drift)
scheduler_activate(s, l->t->ci->drift); scheduler_activate(s, l->t->ci->drift);
else else
error("Drift task missing !"); error("Drift task missing !");
scheduler_activate(s, cj->drift);
if (cell_is_active(cj, e)) { if (cell_is_active(cj, e)) {
for (l = cj->send_rho; l != NULL && l->t->cj->nodeID != ci->nodeID; 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, ...@@ -2564,10 +2566,12 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
if (l == NULL) error("Missing link to send_xv task."); if (l == NULL) error("Missing link to send_xv task.");
scheduler_activate(s, l->t); scheduler_activate(s, l->t);
/* Drift both cells, the foreign one at the level which it is sent. */
if (l->t->ci->drift) if (l->t->ci->drift)
scheduler_activate(s, l->t->ci->drift); scheduler_activate(s, l->t->ci->drift);
else else
error("Drift task missing !"); error("Drift task missing !");
scheduler_activate(s, ci->drift);
if (cell_is_active(ci, e)) { if (cell_is_active(ci, e)) {
for (l = ci->send_rho; l != NULL && l->t->cj->nodeID != cj->nodeID; for (l = ci->send_rho; l != NULL && l->t->cj->nodeID != cj->nodeID;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment