From 2e6ddd968d5601689f59c029bb401d7cdabab3b7 Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Fri, 11 Oct 2024 15:42:45 -0400 Subject: [PATCH] Don't enable GC.auto_compact in EnvUtil.under_gc_compact_stress when not supported --- tool/lib/envutil.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tool/lib/envutil.rb b/tool/lib/envutil.rb index 952614b8cf..7b8aa99a39 100644 --- a/tool/lib/envutil.rb +++ b/tool/lib/envutil.rb @@ -259,11 +259,15 @@ module EnvUtil def under_gc_compact_stress(val = :empty, &block) raise "compaction doesn't work well on s390x. Omit the test in the caller." if RUBY_PLATFORM =~ /s390x/ # https://github.com/ruby/ruby/pull/5077 - auto_compact = GC.auto_compact - GC.auto_compact = val + + if GC.respond_to?(:auto_compact) + auto_compact = GC.auto_compact + GC.auto_compact = val + end + under_gc_stress(&block) ensure - GC.auto_compact = auto_compact + GC.auto_compact = auto_compact if GC.respond_to?(:auto_compact) end module_function :under_gc_compact_stress