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

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

diff --git a/src/cell.c b/src/cell.c
index 1036110d0c..5258180fa0 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -3265,7 +3265,7 @@ int cell_unskip_hydro_tasks(struct cell *c, struct scheduler *s) {
         if (cj_active) {
           scheduler_activate_recv(s, ci->mpi.recv, task_subtype_xv);
           if (ci_active) {
-            scheduler_activate(s, ci->mpi.hydro.recv_rho);
+            scheduler_activate_recv(s, ci->mpi.recv, task_subtype_rho);
 
 #ifdef EXTRA_HYDRO_LOOP
             scheduler_activate(s, ci->mpi.hydro.recv_gradient);
@@ -3315,7 +3315,7 @@ int cell_unskip_hydro_tasks(struct cell *c, struct scheduler *s) {
         if (ci_active) {
           scheduler_activate_recv(s, cj->mpi.recv, task_subtype_xv);
           if (cj_active) {
-            scheduler_activate(s, cj->mpi.hydro.recv_rho);
+            scheduler_activate_recv(s, cj->mpi.recv, task_subtype_rho);
 
 #ifdef EXTRA_HYDRO_LOOP
             scheduler_activate(s, cj->mpi.hydro.recv_gradient);
@@ -3663,7 +3663,7 @@ int cell_unskip_stars_tasks(struct cell *c, struct scheduler *s) {
 
         if (cj_active) {
           scheduler_activate_recv(s, ci->mpi.recv, task_subtype_xv);
-          scheduler_activate(s, ci->mpi.hydro.recv_rho);
+          scheduler_activate_recv(s, ci->mpi.recv, task_subtype_rho);
 
           /* If the local cell is active, more stuff will be needed. */
           scheduler_activate_send(s, cj->mpi.send, task_subtype_spart,
@@ -3695,7 +3695,7 @@ int cell_unskip_stars_tasks(struct cell *c, struct scheduler *s) {
         /* If the local cell is active, receive data from the foreign cell. */
         if (ci_active) {
           scheduler_activate_recv(s, cj->mpi.recv, task_subtype_xv);
-          scheduler_activate(s, cj->mpi.hydro.recv_rho);
+          scheduler_activate_recv(s, cj->mpi.recv, task_subtype_rho);
 
           /* If the local cell is active, more stuff will be needed. */
           scheduler_activate_send(s, ci->mpi.send, task_subtype_spart,
diff --git a/src/cell.h b/src/cell.h
index c1bc2d7ed1..1c7c70c331 100644
--- a/src/cell.h
+++ b/src/cell.h
@@ -581,9 +581,6 @@ struct cell {
     };
 
     struct {
-      /* Task receiving hydro data (density). */
-      struct task *recv_rho;
-
       /* Task receiving hydro data (gradient). */
       struct task *recv_gradient;
 
diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c
index b1fb70fb94..2f447aafdd 100644
--- a/src/engine_maketasks.c
+++ b/src/engine_maketasks.c
@@ -329,7 +329,7 @@ void engine_addtasks_recv_hydro(struct engine *e, struct cell *c,
   }
 
   engine_addlink(e, &c->mpi.recv, t_xv);
-  c->mpi.hydro.recv_rho = t_rho;
+  engine_addlink(e, &c->mpi.recv, t_rho);
   c->mpi.hydro.recv_gradient = t_gradient;
   c->mpi.hydro.recv_ti = t_ti;
 
diff --git a/src/engine_marktasks.c b/src/engine_marktasks.c
index f6a70e9926..c2a73e6991 100644
--- a/src/engine_marktasks.c
+++ b/src/engine_marktasks.c
@@ -364,7 +364,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
           if (cj_active_hydro) {
             scheduler_activate_recv(s, ci->mpi.recv, task_subtype_xv);
             if (ci_active_hydro) {
-              scheduler_activate(s, ci->mpi.hydro.recv_rho);
+              scheduler_activate_recv(s, ci->mpi.recv, task_subtype_rho);
 #ifdef EXTRA_HYDRO_LOOP
               scheduler_activate(s, ci->mpi.hydro.recv_gradient);
 #endif
@@ -408,7 +408,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
 
             scheduler_activate_recv(s, cj->mpi.recv, task_subtype_xv);
             if (cj_active_hydro) {
-              scheduler_activate(s, cj->mpi.hydro.recv_rho);
+              scheduler_activate_recv(s, cj->mpi.recv, task_subtype_rho);
 #ifdef EXTRA_HYDRO_LOOP
               scheduler_activate(s, cj->mpi.hydro.recv_gradient);
 #endif
@@ -463,7 +463,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
 
           if (cj_active_stars) {
             scheduler_activate_recv(s, ci->mpi.recv, task_subtype_xv);
-            scheduler_activate(s, ci->mpi.hydro.recv_rho);
+            scheduler_activate_recv(s, ci->mpi.recv, task_subtype_rho);
 
             /* If the local cell is active, more stuff will be needed. */
             scheduler_activate_send(s, cj->mpi.send, task_subtype_spart,
@@ -497,7 +497,7 @@ void engine_marktasks_mapper(void *map_data, int num_elements,
           /* If the local cell is active, receive data from the foreign cell. */
           if (ci_active_stars) {
             scheduler_activate_recv(s, cj->mpi.recv, task_subtype_xv);
-            scheduler_activate(s, cj->mpi.hydro.recv_rho);
+            scheduler_activate_recv(s, cj->mpi.recv, task_subtype_rho);
 
             /* If the local cell is active, more stuff will be needed. */
             scheduler_activate_send(s, ci->mpi.send, task_subtype_spart,
diff --git a/src/space.c b/src/space.c
index cb63e86bd0..510d2cc7f4 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_rho = NULL;
     c->mpi.hydro.recv_gradient = NULL;
     c->mpi.hydro.recv_ti = NULL;
     c->mpi.grav.recv = NULL;
@@ -578,7 +577,6 @@ void space_regrid(struct space *s, int verbose) {
 #ifdef WITH_MPI
           c->mpi.tag = -1;
           c->mpi.recv = NULL;
-          c->mpi.hydro.recv_rho = NULL;
           c->mpi.hydro.recv_gradient = NULL;
           c->mpi.send = NULL;
 #endif  // WITH_MPI
-- 
GitLab