1
1

* turns out that you should only call bsend_request_alloc or

bsend_request_init, but not both.  Otherwise, you don't free
  some buffer space and end up leaking buffers and ending in
  badness
* since you only call alloc() or init(), but not both, need to 
  restore reference counting in init()

This commit was SVN r10674.
Этот коммит содержится в:
Brian Barrett 2006-07-06 14:02:51 +00:00
родитель 3d5d0959fa
Коммит 26eee59032
2 изменённых файлов: 2 добавлений и 5 удалений

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

@ -232,9 +232,9 @@ int mca_pml_base_bsend_request_start(ompi_request_t* request)
ompi_convertor_prepare_for_send( &sendreq->req_convertor, sendreq->req_base.req_datatype,
sendreq->req_base.req_count, sendreq->req_base.req_addr );
#endif
/* increment count of pending requests */
mca_pml_bsend_count++;
#endif
sendreq->req_datatype = MPI_BYTE;

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

@ -93,10 +93,7 @@ do { \
MCA_PML_BASE_SEND_START( &sendreq->req_send.req_base ); \
ret = OMPI_SUCCESS; \
if (sendreq->req_send.req_send_mode == MCA_PML_BASE_SEND_BUFFERED) { \
ret = mca_pml_base_bsend_request_alloc(&sendreq->req_send.req_base.req_ompi); \
if (OMPI_SUCCESS == ret) { \
ret =mca_pml_base_bsend_request_start(&sendreq->req_send.req_base.req_ompi); \
} \
ret =mca_pml_base_bsend_request_start(&sendreq->req_send.req_base.req_ompi); \
} \
if (OMPI_SUCCESS == ret) { \
ret = OMPI_MTL_CALL(isend(ompi_mtl, \