Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/process_messages.jl
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ function handle_msg(msg::CallMsg{:call_fetch}, header, r_stream, w_stream, versi
try
deliver_result(w_stream, :call_fetch, header.notify_oid, v.v)
finally
unlock(v.rv.synctake)
unlock(v.rv.synctake::ReentrantLock)
end
else
deliver_result(w_stream, :call_fetch, header.notify_oid, v)
Expand Down
8 changes: 4 additions & 4 deletions src/remotecall.jl
Original file line number Diff line number Diff line change
Expand Up @@ -706,8 +706,8 @@ function put_ref(rid, caller, args...)
put!(rv, args...)
if myid() == caller && rv.synctake !== nothing
# Wait till a "taken" value is serialized out - github issue #29932
lock(rv.synctake)
unlock(rv.synctake)
lock(rv.synctake::ReentrantLock)
unlock(rv.synctake::ReentrantLock)
end
nothing
end
Expand All @@ -731,15 +731,15 @@ function take_ref(rid, caller, args...)
# special handling for local put! / remote take! on unbuffered channel
# github issue #29932
synctake = true
lock(rv.synctake)
lock(rv.synctake::ReentrantLock)
end

v = try
take!(rv, args...)
catch e
# avoid unmatched unlock when exception occurs
# github issue #33972
synctake && unlock(rv.synctake)
synctake && unlock(rv.synctake::ReentrantLock)
rethrow(e)
end

Expand Down
Loading