diff --git a/docs/src/_changelog.md b/docs/src/_changelog.md index 1baff64..63dc32e 100644 --- a/docs/src/_changelog.md +++ b/docs/src/_changelog.md @@ -13,6 +13,11 @@ Changelog](https://keepachangelog.com). - [`lib_version()`](@ref) to get the libzmq version ([#240]). +### Fixed + +- Fixed a precompilation bug that would cause creating a sysimage with + PackageCompiler.jl on Julia 1.6 to fail ([#242]). + ## [v1.2.5] - 2024-05-28 ### Fixed diff --git a/src/ZMQ.jl b/src/ZMQ.jl index 8805754..9a74306 100644 --- a/src/ZMQ.jl +++ b/src/ZMQ.jl @@ -85,6 +85,13 @@ import PrecompileTools: @compile_workload unsafe_string(ZMQ.recv(s2)) ZMQ.close(s1) ZMQ.close(s2) + + # Using the library like this workload will initialize ZMQ._context, which + # contains a pointer. This doesn't seem to play well with serialization on + # Julia 1.6 with PackageCompiler so we explicitly close it to reset the + # pointer. + # See: https://github.com/JuliaLang/julia/issues/46214 + close(ZMQ._context) end end