Force the initialization of the convertor if we detect truncation of messages.
This commit was SVN r11877.
Этот коммит содержится в:
родитель
e5ccc1aece
Коммит
9ae37e474b
@ -102,6 +102,7 @@ do { \
|
|||||||
tag, \
|
tag, \
|
||||||
comm, \
|
comm, \
|
||||||
persistent); \
|
persistent); \
|
||||||
|
(request)->req_bytes_delivered = 0; \
|
||||||
if( MPI_ANY_SOURCE != src ) { \
|
if( MPI_ANY_SOURCE != src ) { \
|
||||||
(request)->req_recv.req_base.req_proc = \
|
(request)->req_recv.req_base.req_proc = \
|
||||||
comm->c_pml_comm->procs[src].ompi_proc; \
|
comm->c_pml_comm->procs[src].ompi_proc; \
|
||||||
@ -113,6 +114,8 @@ do { \
|
|||||||
(request)->req_recv.req_base.req_addr, \
|
(request)->req_recv.req_base.req_addr, \
|
||||||
0, \
|
0, \
|
||||||
&(request)->req_recv.req_convertor ); \
|
&(request)->req_recv.req_convertor ); \
|
||||||
|
ompi_convertor_get_unpacked_size( &(request)->req_recv.req_convertor, \
|
||||||
|
&(request)->req_bytes_delivered ); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
} while(0)
|
} while(0)
|
||||||
@ -240,13 +243,13 @@ do {
|
|||||||
do { \
|
do { \
|
||||||
(request)->req_recv.req_base.req_ompi.req_status.MPI_TAG = (hdr)->hdr_tag; \
|
(request)->req_recv.req_base.req_ompi.req_status.MPI_TAG = (hdr)->hdr_tag; \
|
||||||
(request)->req_recv.req_base.req_ompi.req_status.MPI_SOURCE = (hdr)->hdr_src; \
|
(request)->req_recv.req_base.req_ompi.req_status.MPI_SOURCE = (hdr)->hdr_src; \
|
||||||
(request)->req_bytes_delivered = (request)->req_recv.req_bytes_packed; \
|
|
||||||
\
|
\
|
||||||
PERUSE_TRACE_COMM_EVENT( PERUSE_COMM_MSG_MATCH_POSTED_REQ, \
|
PERUSE_TRACE_COMM_EVENT( PERUSE_COMM_MSG_MATCH_POSTED_REQ, \
|
||||||
&((request)->req_recv.req_base), PERUSE_RECV ); \
|
&((request)->req_recv.req_base), PERUSE_RECV ); \
|
||||||
\
|
\
|
||||||
if((request)->req_recv.req_bytes_packed > 0) { \
|
if((request)->req_recv.req_bytes_packed > 0) { \
|
||||||
if( MPI_ANY_SOURCE == (request)->req_recv.req_base.req_peer ) { \
|
if( (MPI_ANY_SOURCE == (request)->req_recv.req_base.req_peer) || \
|
||||||
|
(0 == (request)->req_bytes_delivered) ) { \
|
||||||
ompi_convertor_copy_and_prepare_for_recv( \
|
ompi_convertor_copy_and_prepare_for_recv( \
|
||||||
(request)->req_recv.req_base.req_proc->proc_convertor, \
|
(request)->req_recv.req_base.req_proc->proc_convertor, \
|
||||||
(request)->req_recv.req_base.req_datatype, \
|
(request)->req_recv.req_base.req_datatype, \
|
||||||
@ -254,9 +257,9 @@ do {
|
|||||||
(request)->req_recv.req_base.req_addr, \
|
(request)->req_recv.req_base.req_addr, \
|
||||||
0, \
|
0, \
|
||||||
&(request)->req_recv.req_convertor ); \
|
&(request)->req_recv.req_convertor ); \
|
||||||
} \
|
|
||||||
ompi_convertor_get_unpacked_size( &(request)->req_recv.req_convertor, \
|
ompi_convertor_get_unpacked_size( &(request)->req_recv.req_convertor, \
|
||||||
&(request)->req_bytes_delivered ); \
|
&(request)->req_bytes_delivered ); \
|
||||||
|
} \
|
||||||
PERUSE_TRACE_COMM_EVENT (PERUSE_COMM_REQ_XFER_BEGIN, \
|
PERUSE_TRACE_COMM_EVENT (PERUSE_COMM_REQ_XFER_BEGIN, \
|
||||||
&((request)->req_recv.req_base), PERUSE_RECV); \
|
&((request)->req_recv.req_base), PERUSE_RECV); \
|
||||||
} \
|
} \
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user