1
1

ob1: rewind convertor after failed send

This commit was SVN r26395.
Этот коммит содержится в:
Nathan Hjelm 2012-05-07 17:22:22 +00:00
родитель b94e7af5c8
Коммит a32d4c648d
3 изменённых файлов: 10 добавлений и 1 удалений

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

@ -53,6 +53,7 @@ int mca_pml_ob1_progress(void)
completed_requests++;
break;
case MCA_PML_OB1_SEND_PENDING_START:
MCA_PML_OB1_SEND_REQUEST_RESET(sendreq);
endpoint = sendreq->req_endpoint;
send_succedded = false;
for(j = 0; j < (int)mca_bml_base_btl_array_get_size(&endpoint->btl_eager); j++) {

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

@ -70,7 +70,8 @@ void mca_pml_ob1_send_request_process_pending(mca_bml_base_btl_t *bml_btl)
add_request_to_send_pending(sendreq,
MCA_PML_OB1_SEND_PENDING_START, true);
} else {
rc = mca_pml_ob1_send_request_start_btl(sendreq, send_dst);
MCA_PML_OB1_SEND_REQUEST_RESET(sendreq);
rc = mca_pml_ob1_send_request_start_btl(sendreq, send_dst);
if (OMPI_ERR_OUT_OF_RESOURCE == rc) {
/* No more resources on this btl so prepend to the pending
* list to minimize reordering and give up for now. */

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

@ -159,6 +159,13 @@ get_request_from_send_pending(mca_pml_ob1_send_pending_t *type)
(sendreq)->req_recv.pval = NULL; \
}
#define MCA_PML_OB1_SEND_REQUEST_RESET(sendreq) \
{ \
size_t _position = 0; \
opal_convertor_set_position(&sendreq->req_send.req_base.req_convertor, \
&_position); \
assert( 0 == _position ); \
}
static inline void mca_pml_ob1_free_rdma_resources(mca_pml_ob1_send_request_t* sendreq)
{