This patch is not correct, the list manipulation should remain protected behind the mutex.
George. On Oct 22, 2013, at 17:33 , svn-commit-mai...@open-mpi.org wrote: > Author: hjelmn (Nathan Hjelm) > Date: 2013-10-22 11:33:39 EDT (Tue, 22 Oct 2013) > New Revision: 29465 > URL: https://svn.open-mpi.org/trac/ompi/changeset/29465 > > Log: > Fix rentry check in communicator request progress. > > cmr=v1.7.4:ticket=3796 > > Text files modified: > trunk/ompi/communicator/comm_request.c | 9 ++++++++- > > 1 files changed, 8 insertions(+), 1 deletions(-) > > Modified: trunk/ompi/communicator/comm_request.c > ============================================================================== > --- trunk/ompi/communicator/comm_request.c Tue Oct 22 11:33:32 2013 > (r29464) > +++ trunk/ompi/communicator/comm_request.c 2013-10-22 11:33:39 EDT (Tue, > 22 Oct 2013) (r29465) > @@ -11,6 +11,8 @@ > > #include "comm_request.h" > > +#include "opal/include/opal/sys/atomic.h" > + > opal_free_list_t ompi_comm_requests; > opal_list_t ompi_comm_requests_active; > opal_mutex_t ompi_comm_request_mutex; > @@ -89,11 +91,15 @@ > static int ompi_comm_request_progress (void) > { > ompi_comm_request_t *request, *next; > + static int32_t progressing = 0; > > - if (opal_mutex_trylock (&ompi_comm_request_mutex)) { > + /* don't allow re-entry */ > + if (opal_atomic_swap_32 (&progressing, 1)) { > return 0; > } > > + opal_mutex_lock (&ompi_comm_request_mutex); > + > OPAL_LIST_FOREACH_SAFE(request, next, &ompi_comm_requests_active, > ompi_comm_request_t) { > int rc = OMPI_SUCCESS; > > @@ -140,6 +146,7 @@ > } > > opal_mutex_unlock (&ompi_comm_request_mutex); > + progressing = 0; > > return 1; > } > _______________________________________________ > svn mailing list > s...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/svn