return mpool resources when request completes rather than in free
This commit was SVN r8063.
Этот коммит содержится в:
родитель
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); \
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user