From 4cb3336ca1d34e143efa3333a03cb0bf63eaf5f4 Mon Sep 17 00:00:00 2001 From: Technici4n <13494793+Technici4n@users.noreply.github.com> Date: Mon, 18 Nov 2024 10:13:11 +0100 Subject: [PATCH] Fix #714: Make TAGCOUNT always greater than the last instantiated Tag's count --- src/config.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/config.jl b/src/config.jl index 30f02ae5..6c111363 100644 --- a/src/config.jl +++ b/src/config.jl @@ -14,7 +14,9 @@ const TAGCOUNT = Threads.Atomic{UInt}(0) end function Tag(f::F, ::Type{V}) where {F,V} - tagcount(Tag{F,V}) # trigger generated function + count = tagcount(Tag{F,V}) # trigger generated function + # make sure inner derivatives have a higher count even if this Tag instantiation was precompiled; fixes #714 + Threads.atomic_max!(TAGCOUNT, count+1) Tag{F,V}() end