我在JRuby下使用ruby-mysql库并收到以下警告:
/mysql/protocol.rb:530 warning: GC.disable does nothing on JRuby
有没有办法让JRuby停止抱怨这个?
答案 0 :(得分:6)
你有几个选择。
首先,您可以使用-W0
选项运行程序,该选项将禁用所有警告。这可能不是你想要的。
但是,应用-W0
与将$VERBOSE
设置为nil
相同 - 因此我们可以在我们要禁止警告的代码周围执行此操作。这是第二个也是更可取的选择。
def suppress_all_warnings
old_verbose = $VERBOSE
begin
$VERBOSE = nil
yield if block_given?
ensure
# always re-set to old value, even if block raises an exception
$VERBOSE = old_verbose
end
end
puts "Starting"
MyConst = 1
MyConst = 2
suppress_all_warnings do
GC.disable
end
puts "Done"
使用JRuby 1.5.0运行此命令会正确警告我重新初始化的常量并正确地抑制GC.disable
警告。
答案 1 :(得分:1)
如果从ruby-mysql切换到activerecord-jdbcmysql-adapter,则可以完全避免此警告。