ugni: poll smsg mailbox until it is empty
This commit was SVN r25794.
Этот коммит содержится в:
родитель
2a83297f96
Коммит
669f0afd14
@ -354,17 +354,17 @@ mca_btl_ugni_smsg_process (mca_btl_base_endpoint_t *ep)
|
|||||||
mca_btl_base_segment_t *segments;
|
mca_btl_base_segment_t *segments;
|
||||||
mca_btl_ugni_frag_hdr_t *hdr;
|
mca_btl_ugni_frag_hdr_t *hdr;
|
||||||
uintptr_t data_ptr;
|
uintptr_t data_ptr;
|
||||||
int tries = 3;
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
/* loop until the mailbox is empty */
|
||||||
do {
|
do {
|
||||||
uint8_t tag = GNI_SMSG_ANY_TAG;
|
uint8_t tag = GNI_SMSG_ANY_TAG;
|
||||||
|
|
||||||
rc = GNI_SmsgGetNextWTag (ep->common->ep_handle, (void **) &data_ptr, &tag);
|
rc = GNI_SmsgGetNextWTag (ep->common->ep_handle, (void **) &data_ptr, &tag);
|
||||||
if (GNI_RC_SUCCESS != rc) {
|
if (GNI_RC_SUCCESS != rc) {
|
||||||
BTL_VERBOSE(("no smsg message waiting. rc = %d", rc));
|
BTL_VERBOSE(("no smsg message waiting. rc = %d", rc));
|
||||||
continue;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OPAL_UNLIKELY(0 == data_ptr)) {
|
if (OPAL_UNLIKELY(0 == data_ptr)) {
|
||||||
@ -425,7 +425,7 @@ mca_btl_ugni_smsg_process (mca_btl_base_endpoint_t *ep)
|
|||||||
BTL_ERROR(("Smsg release failed!"));
|
BTL_ERROR(("Smsg release failed!"));
|
||||||
return OMPI_ERROR;
|
return OMPI_ERROR;
|
||||||
}
|
}
|
||||||
} while (tries--);
|
} while (1);
|
||||||
|
|
||||||
/* finished processing events */
|
/* finished processing events */
|
||||||
return count;
|
return count;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user