I wanted to register a finalizer for instances of some specific type. The final requirement is to achieve the following features simultaneously:
- invoking some callback once the object is gc-ed
- keeping the object precompile-able
Unfortunately, it seems that my finalizer got lost after precompilation:
module MyMod
mutable struct S
function S()
self = new()
finalizer(self) do x
println("call finalizer")
end
self
end
end
const precompiled_s = S()
end
If I precompile the module S
, and load the module again, the finalizer never gets called.
How could I restore my finalizers registered to the all objects of S
?