1
1

UNIQ use now the new datatype engine.

This commit was SVN r6016.
Этот коммит содержится в:
George Bosilca 2005-06-09 17:50:34 +00:00
родитель 66e15238a6
Коммит 3517c87fe3
3 изменённых файлов: 24 добавлений и 6 удалений

Просмотреть файл

@ -77,9 +77,7 @@ bool mca_pml_uniq_recv_frag_match(
if (NULL == frag->frag_base.frag_peer) {
frag->frag_base.frag_peer = mca_pml_uniq_proc_lookup_remote_peer(request->req_recv.req_base.req_comm,header->hdr_src,ptl);
}
/* notify ptl of match */
ptl->ptl_matched(ptl, frag);
MCA_PML_UNIQ_RECV_MATCHED( ptl, frag );
};

Просмотреть файл

@ -23,6 +23,7 @@
#include "mca/ptl/ptl.h"
#include "mca/pml/base/pml_base_recvreq.h"
#include "mca/ptl/base/ptl_base_recvfrag.h"
#include "datatype/convertor.h"
/**
* Called by the PTL to match attempt a match for new fragments.
@ -38,5 +39,24 @@ bool mca_pml_uniq_recv_frag_match(
mca_ptl_base_match_header_t* header
);
#define MCA_PML_UNIQ_RECV_MATCHED( ptl, frag ) \
do { \
mca_pml_base_recv_request_t* _request = (mca_pml_base_recv_request_t*)(frag)->frag_request; \
/* Now that we have the sender we can create the convertor. Additionally, we know */ \
/* that the required convertor should start at the position zero as we just match */ \
/* the first fragment. */ \
if( 0 != (_request)->req_bytes_packed ) { \
(_request)->req_base.req_proc = ompi_comm_peer_lookup( \
(_request)->req_base.req_comm, \
frag->frag_base.frag_header.hdr_match.hdr_src); \
ompi_convertor_copy_and_prepare_for_recv( \
(_request)->req_base.req_proc->proc_convertor, \
(_request)->req_base.req_datatype, \
(_request)->req_base.req_count, \
(_request)->req_base.req_addr, \
&((_request)->req_convertor) ); \
} \
ptl->ptl_matched( (ptl), (frag) ); /* notify ptl of match */ \
} while (0)
#endif

Просмотреть файл

@ -21,7 +21,7 @@
#include "mca/ptl/base/ptl_base_comm.h"
#include "pml_uniq_recvreq.h"
#include "pml_uniq_sendreq.h"
#include "pml_uniq_recvfrag.h"
static mca_ptl_base_recv_frag_t* mca_pml_uniq_recv_request_match_specific_proc(
mca_ptl_base_recv_request_t* request, int proc);
@ -153,7 +153,7 @@ void mca_pml_uniq_recv_request_match_specific(mca_ptl_base_recv_request_t* reque
OMPI_THREAD_UNLOCK(&pml_comm->c_matching_lock);
if( !((MCA_PML_REQUEST_IPROBE == request->req_recv.req_base.req_type) ||
(MCA_PML_REQUEST_PROBE == request->req_recv.req_base.req_type)) ) {
ptl->ptl_matched(ptl, frag);
MCA_PML_UNIQ_RECV_MATCHED( ptl, frag );
}
return; /* match found */
}
@ -207,7 +207,7 @@ void mca_pml_uniq_recv_request_match_wild(mca_ptl_base_recv_request_t* request)
OMPI_THREAD_UNLOCK(&pml_comm->c_matching_lock);
if( !((MCA_PML_REQUEST_IPROBE == request->req_recv.req_base.req_type) ||
(MCA_PML_REQUEST_PROBE == request->req_recv.req_base.req_type)) ) {
ptl->ptl_matched(ptl, frag);
MCA_PML_UNIQ_RECV_MATCHED( ptl, frag );
}
return; /* match found */
}