When receiving a message, need to account for the fact that the displacement
of the first entry might not be the start of the user's buffer. This is similar to what ompi_convertor_unpack does. This is the solution for the test case attached to ticket #690. Refs trac:690 This commit was SVN r13397. The following Trac tickets were found above: Ticket 690 --> https://svn.open-mpi.org/trac/ompi/ticket/690
Этот коммит содержится в:
родитель
65b07140c0
Коммит
846eed84f1
@ -23,6 +23,8 @@
|
|||||||
#include "ompi/mca/mtl/base/base.h"
|
#include "ompi/mca/mtl/base/base.h"
|
||||||
#include "ompi/constants.h"
|
#include "ompi/constants.h"
|
||||||
#include "ompi/datatype/convertor.h"
|
#include "ompi/datatype/convertor.h"
|
||||||
|
#include "ompi/datatype/datatype.h"
|
||||||
|
#include "ompi/datatype/datatype_internal.h"
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
ompi_mtl_datatype_pack(struct ompi_convertor_t *convertor,
|
ompi_mtl_datatype_pack(struct ompi_convertor_t *convertor,
|
||||||
@ -75,7 +77,8 @@ ompi_mtl_datatype_recv_buf(struct ompi_convertor_t *convertor,
|
|||||||
*free_on_error = true;
|
*free_on_error = true;
|
||||||
} else {
|
} else {
|
||||||
ompi_ddt_type_lb(convertor->pDesc, &lb);
|
ompi_ddt_type_lb(convertor->pDesc, &lb);
|
||||||
*buffer = convertor->pBaseBuf + lb;
|
*buffer = convertor->pBaseBuf + lb +
|
||||||
|
convertor->use_desc->desc[convertor->use_desc->used].end_loop.first_elem_disp;;
|
||||||
}
|
}
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user