Skip to content

Commit 2d494b6

Browse files
committed
make precompile work in old case
1 parent ee77606 commit 2d494b6

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

SnoopPrecompile/src/SnoopPrecompile.jl

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,29 @@ macro precompile_all_calls(ex::Expr)
5959
end
6060
end
6161
if have_inference_tracking
62-
ex = quote
63-
Core.Compiler.__set_measure_typeinf(true)
64-
try
65-
$ex
66-
finally
67-
Core.Compiler.__set_measure_typeinf(false)
62+
ex = if isdefined(Core.Compiler.Timings, :clear_and_fetch_timings)
63+
# use new thread-safe timings API if it's available in this version of Julia
64+
quote
65+
Core.Compiler.__set_measure_typeinf(true)
66+
try
67+
$ex
68+
finally
69+
Core.Compiler.__set_measure_typeinf(false)
70+
end
71+
$SnoopPrecompile.precompile_roots(Core.Compiler.Timings.clear_and_fetch_timings())
72+
end
73+
else
74+
quote
75+
Core.Compiler.Timings.reset_timings()
76+
Core.Compiler.__set_measure_typeinf(true)
77+
try
78+
$ex
79+
finally
80+
Core.Compiler.__set_measure_typeinf(false)
81+
Core.Compiler.Timings.close_current_timer()
82+
end
83+
$SnoopPrecompile.precompile_roots(Core.Compiler.Timings._timings[1].children)
6884
end
69-
$SnoopPrecompile.precompile_roots(Core.Compiler.Timings.clear_and_fetch_timings())
7085
end
7186
end
7287
return esc(quote

0 commit comments

Comments
 (0)