Skip to content

Commit 839336f

Browse files
committed
use invokelatest in libuv getaddrinfo callback
1 parent fd4b371 commit 839336f

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

base/socket.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -584,18 +584,18 @@ function uv_getaddrinfocb(req::Ptr{Void}, status::Cint, addrinfo::Ptr{Void})
584584
cb = unsafe_pointer_to_objref(data)::Function
585585
pop!(callback_dict,cb) # using pop forces an error if cb not in callback_dict
586586
if status != 0 || addrinfo == C_NULL
587-
cb(UVError("uv_getaddrinfocb received an unexpected status code", status))
587+
invokelatest(cb, UVError("uv_getaddrinfocb received an unexpected status code", status))
588588
else
589589
freeaddrinfo = addrinfo
590590
while addrinfo != C_NULL
591591
sockaddr = ccall(:jl_sockaddr_from_addrinfo, Ptr{Void}, (Ptr{Void},), addrinfo)
592592
if ccall(:jl_sockaddr_is_ip4, Int32, (Ptr{Void},), sockaddr) == 1
593-
cb(IPv4(ntoh(ccall(:jl_sockaddr_host4, UInt32, (Ptr{Void},), sockaddr))))
593+
invokelatest(cb, IPv4(ntoh(ccall(:jl_sockaddr_host4, UInt32, (Ptr{Void},), sockaddr))))
594594
break
595595
#elseif ccall(:jl_sockaddr_is_ip6, Int32, (Ptr{Void},), sockaddr) == 1
596596
# host = Array{UInt128}(1)
597597
# scope_id = ccall(:jl_sockaddr_host6, UInt32, (Ptr{Void}, Ptr{UInt128}), sockaddr, host)
598-
# cb(IPv6(ntoh(host[1])))
598+
# invokelatest(cb, IPv6(ntoh(host[1])))
599599
# break
600600
end
601601
addrinfo = ccall(:jl_next_from_addrinfo, Ptr{Void}, (Ptr{Void},), addrinfo)

0 commit comments

Comments
 (0)