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;
|
tag = drain_msg_ref->tag;
|
||||||
memcpy(buf, drain_msg_ref->buffer, tmp_ddt_size * count);
|
memcpy(buf, drain_msg_ref->buffer, tmp_ddt_size * count);
|
||||||
|
|
||||||
|
*request = drain_msg_ref->request;
|
||||||
|
OBJ_RETAIN(*request);
|
||||||
|
|
||||||
/* Remove the message from the list */
|
/* 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));
|
opal_list_remove_item(&drained_msg_list, &(drain_msg_ref->super));
|
||||||
OBJ_RELEASE(drain_msg_ref);
|
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));
|
memcpy(status, &drain_msg_ref->status, sizeof(ompi_status_public_t));
|
||||||
|
|
||||||
/* Remove the message from the list */
|
/* 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));
|
opal_list_remove_item(&drained_msg_list, &(drain_msg_ref->super));
|
||||||
OBJ_RELEASE(drain_msg_ref);
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( OMPI_CRCP_PML_DONE == pml_state->state) {
|
||||||
|
goto CLEANUP;
|
||||||
|
}
|
||||||
|
|
||||||
if( OMPI_CRCP_PML_SKIP != pml_state->state) {
|
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) ) ) {
|
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);
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CLEANUP:
|
||||||
PML_CRCP_STATE_RETURN(pml_state);
|
PML_CRCP_STATE_RETURN(pml_state);
|
||||||
|
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user