diff options
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | test/thread/test_queue.rb | 5 |
2 files changed, 15 insertions, 2 deletions
@@ -1,3 +1,15 @@ +Thu Mar 7 01:17:00 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com> + + * test/thread/test_queue.rb (TestQueue#test_thr_kill): reduce + iterations from 2000 to 250. When running on uniprocessor + systems, every th.kill needs TIME_QUANTUM_USEC time (i.e. + 100msec on posix systems). Because, "r.read 1" is 3 steps + operations that 1) release GVL 2) read 3) acquire gvl and + (1) invoke context switch to main thread. and then, main + thread's th.kill resume (1), but not (2). Thus read interrupt + need TIME_QUANTUM_USEC. Then maximum iteration is 30sec/100msec + = 300. + Thu Mar 7 00:14:51 2013 KOSAKI Motohiro <kosaki.motohiro@gmail.com> * io.c (rb_update_max_fd): use ATOMIC_CAS because this function diff --git a/test/thread/test_queue.rb b/test/thread/test_queue.rb index ec743772f8..993514f86d 100644 --- a/test/thread/test_queue.rb +++ b/test/thread/test_queue.rb @@ -85,7 +85,7 @@ class TestQueue < Test::Unit::TestCase bug5343 = '[ruby-core:39634]' Dir.mktmpdir {|d| timeout = 30 - total_count = 2000 + total_count = 250 begin assert_normal_exit(<<-"_eom", bug5343, {:timeout => timeout, :chdir=>d}) require "thread" @@ -98,7 +98,8 @@ class TestQueue < Test::Unit::TestCase r.read 1 } queue.pop - th.kill.join + th.kill + th.join end _eom rescue Timeout::Error |