1
1

return mpool resources when request completes rather than in free

This commit was SVN r8063.
Этот коммит содержится в:
Tim Woodall 2005-11-09 21:59:01 +00:00
родитель 6b99301893
Коммит 58b46d2da0

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

@ -245,9 +245,18 @@ do {
*/ */
#define MCA_PML_OB1_SEND_REQUEST_PML_COMPLETE(sendreq) \ #define MCA_PML_OB1_SEND_REQUEST_PML_COMPLETE(sendreq) \
do { \ do { \
size_t r; \
/* request completed at pml level */ \ /* request completed at pml level */ \
(sendreq)->req_send.req_base.req_pml_complete = true; \ (sendreq)->req_send.req_base.req_pml_complete = true; \
\ \
/* return mpool resources */ \
for(r=0; r<sendreq->req_rdma_cnt; r++) { \
mca_mpool_base_registration_t* reg = sendreq->req_rdma[r].btl_reg; \
if( NULL != reg ) { \
reg->mpool->mpool_release(reg->mpool, reg); \
} \
} \
\
/* user has already released the request so simply free it */ \ /* user has already released the request so simply free it */ \
if((sendreq)->req_send.req_base.req_free_called) { \ if((sendreq)->req_send.req_base.req_free_called) { \
/* if buffered send - release any resources */ \ /* if buffered send - release any resources */ \
@ -301,13 +310,6 @@ do {
#define MCA_PML_OB1_SEND_REQUEST_RETURN(sendreq) \ #define MCA_PML_OB1_SEND_REQUEST_RETURN(sendreq) \
{ \ { \
/* Let the base handle the reference counts */ \ /* Let the base handle the reference counts */ \
size_t r; \
for(r=0; r<sendreq->req_rdma_cnt; r++) { \
mca_mpool_base_registration_t* reg = sendreq->req_rdma[r].btl_reg; \
if( NULL != reg ) { \
reg->mpool->mpool_release(reg->mpool, reg); \
} \
} \
MCA_PML_BASE_SEND_REQUEST_FINI((&(sendreq)->req_send)); \ MCA_PML_BASE_SEND_REQUEST_FINI((&(sendreq)->req_send)); \
OMPI_FREE_LIST_RETURN( \ OMPI_FREE_LIST_RETURN( \
&mca_pml_ob1.send_requests, (opal_list_item_t*)sendreq); \ &mca_pml_ob1.send_requests, (opal_list_item_t*)sendreq); \