Sha256: a1c52d9eaca1fc7e289725f172b8499fb320880739ec90f66af107ea8bc554b8
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true require_relative 'helper' class ThreadTest < MiniTest::Test def test_thread_spin buffer = [] spin { (1..3).each { |i| snooze; buffer << i } } t = Thread.new do s1 = spin { (11..13).each { |i| snooze; buffer << i } } s2 = spin { (21..23).each { |i| snooze; buffer << i } } Fiber.join(s1, s2) end t.join assert_equal [1, 2, 3, 11, 12, 13, 21, 22, 23], buffer.sort end def test_thread_join buffer = [] spin { (1..3).each { |i| snooze; buffer << i } } t = Thread.new { sleep 0.01; buffer << 4 } r = t.join assert_equal [1, 2, 3, 4], buffer assert_equal t, r end def test_thread_join_with_timeout buffer = [] spin { (1..3).each { |i| snooze; buffer << i } } t = Thread.new { sleep 1; buffer << 4 } t0 = Time.now r = t.join(0.01) assert Time.now - t0 < 0.2 assert_equal [1, 2, 3], buffer assert_nil r ensure # killing the thread will prevent stopping the sleep timer, as well as the # thread's event selector, leading to a memory leak. t.kill if t.alive? end def test_thread_inspect lineno = __LINE__ + 1 t = Thread.new {} str = format( "#<Thread:%d %s:%d (run)>", t.object_id, __FILE__, lineno, ) assert_equal str, t.inspect end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
polyphony-0.28 | test/test_thread.rb |