1
1

* 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.
Этот коммит содержится в:
Brian Barrett 2006-08-16 20:24:28 +00:00
родитель 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); \