* more fixes for ticket #264. We need to keep the original address around,
so use the req_buff field for keeping track of the bsend buffer and the req_addr field for the user buffer, the way the comments suggested we were doing it This commit was SVN r11233.
Этот коммит содержится в:
родитель
3b49953ce2
Коммит
74e95bc65f
@ -230,12 +230,12 @@ do { \
|
|||||||
int freeAfter; \
|
int freeAfter; \
|
||||||
\
|
\
|
||||||
if(sendreq->req_count > 0) { \
|
if(sendreq->req_count > 0) { \
|
||||||
sendreq->req_addr = \
|
sendreq->req_buff = \
|
||||||
mca_pml_base_bsend_request_alloc_buf(sendreq->req_count); \
|
mca_pml_base_bsend_request_alloc_buf(sendreq->req_count); \
|
||||||
if (NULL == sendreq->req_addr) { \
|
if (NULL == sendreq->req_buff) { \
|
||||||
ret = MPI_ERR_BUFFER; \
|
ret = MPI_ERR_BUFFER; \
|
||||||
} else { \
|
} else { \
|
||||||
iov.iov_base = sendreq->req_addr; \
|
iov.iov_base = sendreq->req_buff; \
|
||||||
max_data = iov.iov_len = sendreq->req_count; \
|
max_data = iov.iov_len = sendreq->req_count; \
|
||||||
iov_count = 1; \
|
iov_count = 1; \
|
||||||
ompi_convertor_pack( &sendreq->req_send.req_base.req_convertor, \
|
ompi_convertor_pack( &sendreq->req_send.req_base.req_convertor, \
|
||||||
@ -243,7 +243,7 @@ do { \
|
|||||||
&iov_count, \
|
&iov_count, \
|
||||||
&max_data, &freeAfter); \
|
&max_data, &freeAfter); \
|
||||||
ompi_convertor_prepare_for_send( &sendreq->req_send.req_base.req_convertor, MPI_PACKED, \
|
ompi_convertor_prepare_for_send( &sendreq->req_send.req_base.req_convertor, MPI_PACKED, \
|
||||||
max_data, sendreq->req_addr ); \
|
max_data, sendreq->req_buff ); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
} while(0);
|
} while(0);
|
||||||
@ -285,7 +285,7 @@ do { \
|
|||||||
\
|
\
|
||||||
if (sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED && \
|
if (sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED && \
|
||||||
sendreq->req_count > 0 ) { \
|
sendreq->req_count > 0 ) { \
|
||||||
mca_pml_base_bsend_request_free(sendreq->req_addr); \
|
mca_pml_base_bsend_request_free(sendreq->req_buff); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
OPAL_THREAD_LOCK(&ompi_request_lock); \
|
OPAL_THREAD_LOCK(&ompi_request_lock); \
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user