* 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.
Этот коммит содержится в:
родитель
3d5d0959fa
Коммит
26eee59032
@ -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, \
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user