1
1

Force the initialization of the convertor if we detect truncation of messages.

This commit was SVN r11877.
Этот коммит содержится в:
George Bosilca 2006-09-28 23:42:56 +00:00
родитель 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); \
} \ } \