From 08efb90d1f3d0ccff7ba38e2320cf0436179ea42 Mon Sep 17 00:00:00 2001 From: degomme Date: Thu, 20 Oct 2016 15:09:23 +0200 Subject: [PATCH] Fix bug in SMPI tracing, where messages were sometimes badly matched. This eparates sent and received messages when trying to match a new one to avoid matching a send with another send. --- src/smpi/instr_smpi.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/smpi/instr_smpi.cpp b/src/smpi/instr_smpi.cpp index ee21f420d6..19b45452fd 100644 --- a/src/smpi/instr_smpi.cpp +++ b/src/smpi/instr_smpi.cpp @@ -99,7 +99,7 @@ static char *TRACE_smpi_put_key(int src, int dst, char *key, int n) { //get the dynar for src#dst char aux[INSTR_DEFAULT_STR_SIZE]; - snprintf(aux, INSTR_DEFAULT_STR_SIZE, "%d#%d", src, dst); + snprintf(aux, INSTR_DEFAULT_STR_SIZE, "r%d#%d", src, dst); xbt_dynar_t d = static_cast(xbt_dict_get_or_null(keys, aux)); if(xbt_dynar_is_empty(d) == 0){ @@ -110,6 +110,7 @@ static char *TRACE_smpi_put_key(int src, int dst, char *key, int n) if (d == nullptr) { d = xbt_dynar_new(sizeof(char *), &xbt_free_ref); + snprintf(aux, INSTR_DEFAULT_STR_SIZE, "s%d#%d", src, dst); xbt_dict_set(keys, aux, d, nullptr); } @@ -128,7 +129,7 @@ static char *TRACE_smpi_put_key(int src, int dst, char *key, int n) static char *TRACE_smpi_get_key(int src, int dst, char *key, int n) { char aux[INSTR_DEFAULT_STR_SIZE]; - snprintf(aux, INSTR_DEFAULT_STR_SIZE, "%d#%d", src, dst); + snprintf(aux, INSTR_DEFAULT_STR_SIZE, "s%d#%d", src, dst); xbt_dynar_t d = static_cast(xbt_dict_get_or_null(keys, aux)); // sometimes the receive may be posted before the send -- 2.20.1