GlobalArrays/ga

comex_fence_proc() is no-op in MT, PT, PR

Closed this issue · 0 comments

TravisCI build was showing MPI-MT port to fail, but only occasionally. Upon further review,

int comex_fence_proc(int proc, comex_group_t group)
{
#if DEBUG
    printf("[%d] comex_fence_proc(proc=%d, group=%d)\n",
            g_state.rank, proc, group);
#endif

    comex_wait_all(COMEX_GROUP_WORLD);

    return COMEX_SUCCESS;
}

The call to comex_wait_all() is effectively a no-op in this case. No fencing message is initiated, so there is nothing to wait on. This is repeated in the PT and PR implementations. I wonder if we meant to call comex_fence_all() instead? It's potentially a heavy hammer, but it would work.