Skip to content

Commit 1b403e8

Browse files
committed
osc/pt2pt: Fix put hang when used with win_lock_all
* Mark's patch * This condition was introduced in: - 9444df1 - Would like to review with Nathan on this patch. * put is waiting for `eager_send_active` to become `true`, but (for some reason) when incoming post()s or ACKs of lock requests trigger this function it declines to transition `eager_send_active` to `true` in the case of Win_lock_all.
1 parent fc77684 commit 1b403e8

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

ompi/mca/osc/pt2pt/osc_pt2pt_sync.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,18 @@ static inline void ompi_osc_pt2pt_sync_expected (ompi_osc_pt2pt_sync_t *sync)
164164
int32_t new_value = OPAL_THREAD_ADD32 (&sync->sync_expected, -1);
165165
if (0 == new_value) {
166166
OPAL_THREAD_LOCK(&sync->lock);
167+
#if 0
167168
if (!(sync->type == OMPI_OSC_PT2PT_SYNC_TYPE_LOCK && sync->num_peers > 1)) {
168169
sync->eager_send_active = true;
169170
}
171+
#else
172+
if ((sync->type == OMPI_OSC_PT2PT_SYNC_TYPE_LOCK && sync->num_peers > 1)) {
173+
opal_output_verbose(1, ompi_osc_base_framework.framework_output,
174+
"WARNING: Setting 'eager_send_active' even though sync->type = %d and sync->num_peers = %d",
175+
sync->type, sync->num_peers);
176+
}
177+
sync->eager_send_active = true;
178+
#endif
170179
opal_condition_broadcast (&sync->cond);
171180
OPAL_THREAD_UNLOCK(&sync->lock);
172181
}

0 commit comments

Comments
 (0)