1
1

Don't call ompi_request_test() if the request isn't likely to finish.

Otherwise, we end up recursively calling into the progress functions
and corrupting a list that doesn't like to be corrupted.

Refs trac:561

This commit was SVN r13138.

The following Trac tickets were found above:
  Ticket 561 --> https://svn.open-mpi.org/trac/ompi/ticket/561
Этот коммит содержится в:
Brian Barrett 2007-01-17 02:30:11 +00:00
родитель 754042f1fc
Коммит 35c57457c6
3 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -24,6 +24,7 @@
#include "ompi/mca/osc/osc.h"
#include "ompi/win/win.h"
#include "ompi/communicator/communicator.h"
#include "ompi/request/request.h"
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
@ -189,6 +190,10 @@ int ompi_osc_pt2pt_component_select(struct ompi_win_t *win,
int ompi_osc_pt2pt_progress(void);
int ompi_osc_pt2pt_request_test(ompi_request_t ** rptr,
int *completed,
ompi_status_public_t * status );
/*
* Module interface function types
*/

Просмотреть файл

@ -717,7 +717,7 @@ ompi_osc_pt2pt_component_fragment_cb(struct ompi_osc_pt2pt_buffer_t *pt2pt_buffe
static int
int
ompi_osc_pt2pt_request_test(ompi_request_t ** rptr,
int *completed,
ompi_status_public_t * status )

Просмотреть файл

@ -48,7 +48,7 @@ ompi_osc_pt2pt_progress_long(ompi_osc_pt2pt_module_t *module)
int ret, completed;
next = opal_list_get_next(item);
ret = ompi_request_test(&(longreq->req_pml_req), &completed, NULL);
ret = ompi_osc_pt2pt_request_test(&(longreq->req_pml_req), &completed, NULL);
/* BWB - FIX ME - error handling */
if (completed > 0) {
longreq->req_comp_cb(longreq);