1
1

add acked items to datastructure,

fix compile issue. 

This commit was SVN r9178.
Этот коммит содержится в:
Galen Shipman 2006-02-28 01:07:35 +00:00
родитель c6b4cc4417
Коммит d9fd35d399
3 изменённых файлов: 19 добавлений и 5 удалений

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

@ -22,7 +22,10 @@
#include "pml_dr.h"
#include "pml_dr_comm.h"
OBJ_CLASS_INSTANCE(mca_pml_dr_acked_item_t,
opal_list_item_t,
NULL,
NULL);
static void mca_pml_dr_comm_proc_construct(mca_pml_dr_comm_proc_t* proc)
{

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

@ -89,7 +89,7 @@ OMPI_DECLSPEC OBJ_CLASS_DECLARATION(mca_pml_dr_comm_t);
OMPI_DECLSPEC extern int mca_pml_dr_comm_init(mca_pml_dr_comm_t* dr_comm, ompi_communicator_t* ompi_comm);
static inline bool mac_pml_dr_comm_proc_check_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
static inline bool mca_pml_dr_comm_proc_check_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
mca_pml_dr_acked_item_t* item = (mca_pml_dr_acked_item_t*) proc->acked_vfrags_ptr;
int8_t direction = 0; /* 1 is next, -1 is previous */
while(true) {
@ -110,7 +110,7 @@ static inline bool mac_pml_dr_comm_proc_check_acked(mca_pml_dr_comm_proc_t* proc
}
}
static inline void mac_pml_dr_comm_proc_set_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
static inline void mca_pml_dr_comm_proc_set_acked(mca_pml_dr_comm_proc_t* proc, int32_t vfrag_id) {
mca_pml_dr_acked_item_t* item = (mca_pml_dr_acked_item_t*) proc->acked_vfrags_ptr;
int8_t direction = 0; /* 1 is next, -1 is previous */
mca_pml_dr_acked_item_t *new_item, *next_item, *prev_item;

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

@ -150,6 +150,9 @@ static void mca_pml_dr_recv_request_matched(
mca_pml_dr_ack_hdr_t* ack;
int rc;
mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs +
recvreq->req_recv.req_base.req_peer;
/* if this hasn't been initialized yet - this is a synchronous send */
if(NULL == proc) {
ompi_proc_t *ompi_proc = ompi_comm_peer_lookup(
@ -185,6 +188,9 @@ static void mca_pml_dr_recv_request_matched(
mca_bml_base_free(bml_btl, des);
goto retry;
}
mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid);
return;
/* queue request to retry later */
@ -212,6 +218,10 @@ static void mca_pml_dr_recv_request_vfrag_ack(
mca_pml_dr_ack_hdr_t* ack;
int rc;
mca_pml_dr_comm_proc_t* comm_proc = recvreq->req_recv.req_base.req_comm->c_pml_comm->procs +
recvreq->req_recv.req_base.req_peer;
bml_endpoint = (mca_bml_base_endpoint_t*) proc->proc_pml;
bml_btl = mca_bml_base_btl_array_get_next(&bml_endpoint->btl_eager);
@ -240,6 +250,7 @@ static void mca_pml_dr_recv_request_vfrag_ack(
if(rc != OMPI_SUCCESS) {
mca_bml_base_free(bml_btl, des);
}
mca_pml_dr_comm_proc_set_acked(comm_proc, ack->hdr_vid);
}