Sha256: b7209f4462521376fb892ebc2582eb97a04751e28084e936b652692d262bbc2b

Contents?: true

Size: 604 Bytes

Versions: 2

Compression:

Stored size: 604 Bytes

Contents

module GarbageCollectorHelper
  def force_garbage_collect
    GC.enable

    sleep 0.01

    if RUBY_ENGINE == "jruby"
      java.lang.System.gc
    else
      if RUBY_VERSION.start_with?("2")
        GC.start(full_mark: true, immediate_sweep: true)
      else
        GC.start
      end
    end

    sleep 0.01

    GC.disable
  end

  def force_garbage_collection
    force_garbage_collect

    10000.times do
      some_str = User.new("User #{Digest::MD5.hexdigest(Time.now.to_f.to_s)}")
      weak_ref = described_class.new(some_str)
      some_str = nil
    end

    force_garbage_collect
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wref-0.0.8 spec/support/garbage_collector_helper.rb
wref-0.0.7 spec/support/garbage_collector_helper.rb