From: degomme Date: Thu, 20 Oct 2016 13:09:23 +0000 (+0200) Subject: Fix bug in SMPI tracing, where messages were sometimes badly matched. X-Git-Tag: v3_14~294^2~1 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/08efb90d1f3d0ccff7ba38e2320cf0436179ea42 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. --- 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