summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2020-09-17 09:43:32 -0700
committerAaron Patterson <tenderlove@ruby-lang.org>2020-10-16 11:28:52 -0700
commitff9dc109665e515da8b544a55085bb793063adf1 (patch)
treecf8ce7dd132761aeb4e0c4ca178e4b3a24f431c8 /test
parent26e8db6b93019369b7fbb66bdd3bcf0decbbb8eb (diff)
keep proc on the stack so it does not move
Diffstat (limited to 'test')
-rw-r--r--test/-ext-/tracepoint/test_tracepoint.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/test/-ext-/tracepoint/test_tracepoint.rb b/test/-ext-/tracepoint/test_tracepoint.rb
index 79ba090e4c..9d1679602a 100644
--- a/test/-ext-/tracepoint/test_tracepoint.rb
+++ b/test/-ext-/tracepoint/test_tracepoint.rb
@@ -62,9 +62,11 @@ class TestTracepointObj < Test::Unit::TestCase
bug8492 = '[ruby-dev:47400] [Bug #8492]: infinite after_gc_start_hook reentrance'
assert_nothing_raised(Timeout::Error, bug8492) do
assert_in_out_err(%w[-r-test-/tracepoint], <<-'end;', /\A[1-9]/, timeout: 2)
- stress, GC.stress = GC.stress, false
count = 0
- Bug.after_gc_start_hook = proc {count += 1}
+ hook = proc {count += 1}
+ def run(hook)
+ stress, GC.stress = GC.stress, false
+ Bug.after_gc_start_hook = hook
begin
GC.stress = true
3.times {Object.new}
@@ -72,6 +74,8 @@ class TestTracepointObj < Test::Unit::TestCase
GC.stress = stress
Bug.after_gc_start_hook = nil
end
+ end
+ run(hook)
puts count
end;
end