From 9afd5cc3b10a1fb519b36b6995f2e31d84464a88 Mon Sep 17 00:00:00 2001 From: Hui Zhou Date: Mon, 14 Oct 2024 23:48:22 -0500 Subject: [PATCH] ch4/posix: fix made_progress in MPIDI_POSIX_progress_send Only update made_progress when sending the deferred operation is successful. --- src/mpid/ch4/shm/posix/posix_progress.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mpid/ch4/shm/posix/posix_progress.h b/src/mpid/ch4/shm/posix/posix_progress.h index f0096bb6e..e9832f3cf 100644 --- a/src/mpid/ch4/shm/posix/posix_progress.h +++ b/src/mpid/ch4/shm/posix/posix_progress.h @@ -99,7 +99,6 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_POSIX_progress_send(int vci, int *made_progre MPIR_FUNC_ENTER; if (MPIDI_POSIX_global.per_vci[vci].postponed_queue) { - *made_progress = 1; /* Drain postponed queue */ curr_sreq_hdr = MPIDI_POSIX_global.per_vci[vci].postponed_queue; @@ -129,6 +128,9 @@ MPL_STATIC_INLINE_PREFIX int MPIDI_POSIX_progress_send(int vci, int *made_progre MPIR_Assert(0); } + if (curr_sreq_hdr != MPIDI_POSIX_global.per_vci[vci].postponed_queue) { + *made_progress = 1; + } } MPIR_FUNC_EXIT;