Commit 2ebbda72 authored by James Dinan's avatar James Dinan
Browse files

[svn-r10681] RMA Req-ops: Fixed PROC_NULL handling

When called with a target process of PROC_NULL, RMA request-generating
operations did not return a valid request handle.

Reviewer: goodell
parent 9527776c
...@@ -153,8 +153,6 @@ int MPI_Raccumulate(const void *origin_addr, int origin_count, MPI_Datatype ...@@ -153,8 +153,6 @@ int MPI_Raccumulate(const void *origin_addr, int origin_count, MPI_Datatype
/* ... body of routine ... */ /* ... body of routine ... */
if (target_rank == MPI_PROC_NULL) goto fn_exit;
mpi_errno = MPIU_RMA_CALL(win_ptr,Raccumulate(origin_addr, origin_count, mpi_errno = MPIU_RMA_CALL(win_ptr,Raccumulate(origin_addr, origin_count,
origin_datatype, origin_datatype,
target_rank, target_disp, target_count, target_rank, target_disp, target_count,
......
...@@ -147,8 +147,6 @@ int MPI_Rget(void *origin_addr, int origin_count, MPI_Datatype ...@@ -147,8 +147,6 @@ int MPI_Rget(void *origin_addr, int origin_count, MPI_Datatype
/* ... body of routine ... */ /* ... body of routine ... */
if (target_rank == MPI_PROC_NULL) goto fn_exit;
mpi_errno = MPIU_RMA_CALL(win_ptr, mpi_errno = MPIU_RMA_CALL(win_ptr,
Rget(origin_addr, origin_count, origin_datatype, Rget(origin_addr, origin_count, origin_datatype,
target_rank, target_disp, target_count, target_rank, target_disp, target_count,
......
...@@ -179,8 +179,6 @@ int MPI_Rget_accumulate(const void *origin_addr, int origin_count, ...@@ -179,8 +179,6 @@ int MPI_Rget_accumulate(const void *origin_addr, int origin_count,
/* ... body of routine ... */ /* ... body of routine ... */
if (target_rank == MPI_PROC_NULL) goto fn_exit;
mpi_errno = MPIU_RMA_CALL(win_ptr,Rget_accumulate(origin_addr, origin_count, mpi_errno = MPIU_RMA_CALL(win_ptr,Rget_accumulate(origin_addr, origin_count,
origin_datatype, origin_datatype,
result_addr, result_count, result_addr, result_count,
......
...@@ -149,8 +149,6 @@ int MPI_Rput(const void *origin_addr, int origin_count, MPI_Datatype ...@@ -149,8 +149,6 @@ int MPI_Rput(const void *origin_addr, int origin_count, MPI_Datatype
/* ... body of routine ... */ /* ... body of routine ... */
if (target_rank == MPI_PROC_NULL) goto fn_exit;
mpi_errno = MPIU_RMA_CALL(win_ptr, mpi_errno = MPIU_RMA_CALL(win_ptr,
Rput(origin_addr, origin_count, origin_datatype, Rput(origin_addr, origin_count, origin_datatype,
target_rank, target_disp, target_count, target_rank, target_disp, target_count,
......
...@@ -33,7 +33,9 @@ static int MPIDI_CH3I_Rma_req_poll(void *state, MPI_Status *status) ...@@ -33,7 +33,9 @@ static int MPIDI_CH3I_Rma_req_poll(void *state, MPI_Status *status)
/* If this is a local operation, it's already complete. Otherwise, call /* If this is a local operation, it's already complete. Otherwise, call
* flush to complete the operation */ * flush to complete the operation */
/* FIXME: We still may need to flush or sync for shared memory windows */ /* FIXME: We still may need to flush or sync for shared memory windows */
if (req_state->target_rank != req_state->win_ptr->comm_ptr->rank) { if (req_state->target_rank != req_state->win_ptr->comm_ptr->rank &&
req_state->target_rank != MPI_PROC_NULL)
{
mpi_errno = req_state->win_ptr->RMAFns.Win_flush(req_state->target_rank, mpi_errno = req_state->win_ptr->RMAFns.Win_flush(req_state->target_rank,
req_state->win_ptr); req_state->win_ptr);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment