Skip to content

Commit 5af0dcb

Browse files
authored
Fix resize! for (Unsafe)MultiRequest (#772)
1 parent 69abeb5 commit 5af0dcb

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/nonblocking.jl

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,8 @@ function Base.resize!(mreq::MultiRequest, n::Integer)
330330
resize!(mreq.buffers, n)
331331
for i = m+1:n
332332
# initialize
333-
req = mreq[i]
334-
req.val = API.MPI_REQUEST_NULL[]
335-
req.buffer = nothing
333+
mreq.vals[i] = API.MPI_REQUEST_NULL[]
334+
mreq.buffers[i] = nothing
336335
end
337336
return mreq
338337
end
@@ -345,8 +344,7 @@ function Base.resize!(mreq::UnsafeMultiRequest, n::Integer)
345344
resize!(mreq.vals, n)
346345
for i = m+1:n
347346
# initialize
348-
req = mreq[i]
349-
req.val = API.MPI_REQUEST_NULL[]
347+
mreq.vals[i] = API.MPI_REQUEST_NULL[]
350348
end
351349
return mreq
352350
end

test/test_test.jl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ inds = MPI.Waitsome(reqs)
6666
MPI.Waitall(reqs)
6767
@test MPI.Testall(reqs)
6868

69+
resize!(reqs, 4)
70+
@test length(reqs) == 4
71+
@test all(MPI.isnull, reqs)
72+
6973
reqs = MPI.UnsafeMultiRequest(2)
7074
GC.@preserve send_mesg recv_mesg begin
7175
MPI.Irecv!(recv_mesg, comm, reqs[1]; source=src, tag=src+32)
@@ -79,6 +83,9 @@ GC.@preserve send_mesg recv_mesg begin
7983
MPI.Waitall(reqs)
8084
@test MPI.Testall(reqs)
8185
end
86+
resize!(reqs, 4)
87+
@test length(reqs) == 4
88+
@test all(MPI.isnull, reqs)
8289

8390
MPI.Finalize()
8491
@test MPI.Finalized()

0 commit comments

Comments
 (0)