1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* 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.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kosaki 2013-03-10 04:00:44 +00:00
parent 235546ba04
commit 19e0d7c18e
2 changed files with 15 additions and 2 deletions

View file

@ -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

View file

@ -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