play a bit nicer with references.
This commit was SVN r14201.
Этот коммит содержится в:
родитель
b1bed8375c
Коммит
51daa15f9c
@ -1041,11 +1041,10 @@ ompi_crcp_base_pml_state_t* ompi_crcp_coord_pml_irecv( void *buf, size_t count,
|
||||
tag = drain_msg_ref->tag;
|
||||
memcpy(buf, drain_msg_ref->buffer, tmp_ddt_size * count);
|
||||
|
||||
*request = drain_msg_ref->request;
|
||||
OBJ_RETAIN(*request);
|
||||
|
||||
/* Remove the message from the list */
|
||||
if( NULL != drain_msg_ref->datatype ) {
|
||||
OBJ_RELEASE(drain_msg_ref->datatype);
|
||||
drain_msg_ref->datatype = NULL;
|
||||
}
|
||||
opal_list_remove_item(&drained_msg_list, &(drain_msg_ref->super));
|
||||
OBJ_RELEASE(drain_msg_ref);
|
||||
|
||||
@ -1196,10 +1195,6 @@ ompi_crcp_base_pml_state_t* ompi_crcp_coord_pml_recv( void *buf, size_t count,
|
||||
memcpy(status, &drain_msg_ref->status, sizeof(ompi_status_public_t));
|
||||
|
||||
/* Remove the message from the list */
|
||||
if( NULL != drain_msg_ref->datatype ) {
|
||||
OBJ_RELEASE(drain_msg_ref->datatype);
|
||||
drain_msg_ref->datatype = NULL;
|
||||
}
|
||||
opal_list_remove_item(&drained_msg_list, &(drain_msg_ref->super));
|
||||
OBJ_RELEASE(drain_msg_ref);
|
||||
|
||||
|
@ -513,6 +513,10 @@ int mca_pml_crcpw_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int
|
||||
return ret;
|
||||
}
|
||||
|
||||
if( OMPI_CRCP_PML_DONE == pml_state->state) {
|
||||
goto CLEANUP;
|
||||
}
|
||||
|
||||
if( OMPI_CRCP_PML_SKIP != pml_state->state) {
|
||||
if( OMPI_SUCCESS != (ret = mca_pml_crcpw_module.wrapped_pml_module.pml_irecv(buf, count, datatype, src, tag, comm, request) ) ) {
|
||||
PML_CRCP_STATE_RETURN(pml_state);
|
||||
@ -528,6 +532,7 @@ int mca_pml_crcpw_irecv( void *buf, size_t count, ompi_datatype_t *datatype, int
|
||||
return ret;
|
||||
}
|
||||
|
||||
CLEANUP:
|
||||
PML_CRCP_STATE_RETURN(pml_state);
|
||||
|
||||
return OMPI_SUCCESS;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user