From 8c7c065a9f4e6276edf841da30cfc9928cd431df Mon Sep 17 00:00:00 2001
From: Pedro Gonnet <gonnet@google.com>
Date: Mon, 15 Apr 2019 23:10:45 +0200
Subject: [PATCH] replace the cell's mpi.hydro.recv_gradient task pointer with
 the new linked recv pointers.

---
 src/cell.c             | 4 ++--
 src/cell.h             | 3 ---
 src/engine_maketasks.c | 2 +-
 src/engine_marktasks.c | 4 ++--
 src/space.c            | 2 --
 5 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/cell.c b/src/cell.c
index 5258180fa0..e7003a6e7b 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -3268,7 +3268,7 @@ int cell_unskip_hydro_tasks(struct cell *c, struct scheduler *s) {
             scheduler_activate_recv(s, ci->mpi.recv, task_subtype_rho);
 
 #ifdef EXTRA_HYDRO_LOOP
-            scheduler_activate(s, ci->mpi.hydro.recv_gradient);
+            scheduler_activate_recv(s, ci->mpi.recv, task_subtype_gradient);
 #endif
           }
         }
@@ -3318,7 +3318,7 @@ int cell_unskip_hydro_tasks(struct cell *c, struct scheduler *s) {
             scheduler_activate_recv(s, cj->mpi.recv, task_subtype_rho);
 
 #ifdef EXTRA_HYDRO_LOOP
-            scheduler_activate(s, cj->mpi.hydro.recv_gradient);
+            scheduler_activate_recv(s, cj->mpi.recv, task_subtype_gradient);
 #endif
           }
         }
diff --git a/src/cell.h b/src/cell.h
index 1c7c70c331..b275fa2635 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -581,9 +581,6 @@ struct cell {
     };
 
     struct {
-      /* Task receiving hydro data (gradient). */
-      struct task *recv_gradient;
-
       /* Task receiving data (time-step). */
       struct task *recv_ti;
     } hydro;
diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c
index 2f447aafdd..257fc70c5c 100644
--- a/src/engine_maketasks.c
+++ b/src/engine_maketasks.c
@@ -330,7 +330,7 @@ void engine_addtasks_recv_hydro(struct engine *e, struct cell *c,
 
   engine_addlink(e, &c->mpi.recv, t_xv);
   engine_addlink(e, &c->mpi.recv, t_rho);
-  c->mpi.hydro.recv_gradient = t_gradient;
+  engine_addlink(e, &c->mpi.recv, t_gradient);
   c->mpi.hydro.recv_ti = t_ti;
 
   /* Add dependencies. */
diff --git a/src/engine_marktasks.c b/src/engine_marktasks.c
index c2a73e6991..f4b84b303a 100644
--- a/src/engine_marktasks.c
+++ b/src/engine_marktasks.c
@@ -366,7 +366,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
             if (ci_active_hydro) {
               scheduler_activate_recv(s, ci->mpi.recv, task_subtype_rho);
 #ifdef EXTRA_HYDRO_LOOP
-              scheduler_activate(s, ci->mpi.hydro.recv_gradient);
+              scheduler_activate_recv(s, ci->mpi.recv, task_subtype_gradient);
 #endif
             }
           }
@@ -410,7 +410,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
             if (cj_active_hydro) {
               scheduler_activate_recv(s, cj->mpi.recv, task_subtype_rho);
 #ifdef EXTRA_HYDRO_LOOP
-              scheduler_activate(s, cj->mpi.hydro.recv_gradient);
+              scheduler_activate_recv(s, cj->mpi.recv, task_subtype_gradient);
 #endif
             }
           }
diff --git a/src/space.c b/src/space.c
index 510d2cc7f4..f00d43d327 100644
--- a/src/space.c
+++ b/src/space.c
@@ -269,7 +269,6 @@ void space_rebuild_recycle_mapper(void *map_data, int num_elements,
     c->mpi.tag = -1;
 
     c->mpi.recv = NULL;
-    c->mpi.hydro.recv_gradient = NULL;
     c->mpi.hydro.recv_ti = NULL;
     c->mpi.grav.recv = NULL;
     c->mpi.grav.recv_ti = NULL;
@@ -577,7 +576,6 @@ void space_regrid(struct space *s, int verbose) {
 #ifdef WITH_MPI
           c->mpi.tag = -1;
           c->mpi.recv = NULL;
-          c->mpi.hydro.recv_gradient = NULL;
           c->mpi.send = NULL;
 #endif  // WITH_MPI
           if (s->with_self_gravity) c->grav.multipole = &s->multipoles_top[cid];
-- 
GitLab