aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_thread.rb
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-09-15 19:23:43 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-09-15 19:23:43 +0000
commitbb79c011bf39cab7bcf82656548b04c80db7347f (patch)
treef6188872947a2865fa6ffe5a440c90a3238de831 /test/ruby/test_thread.rb
parentabbd388431b570395db0806ebbb4626c86cfd973 (diff)
downloadruby-bb79c011bf39cab7bcf82656548b04c80db7347f.tar.gz
* test/ruby/test_thread.rb (TestThread#test_mutex_synchronize):
insert waste loop for invoking preemptive thread context switch. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_thread.rb')
-rw-r--r--test/ruby/test_thread.rb19
1 files changed, 11 insertions, 8 deletions
diff --git a/test/ruby/test_thread.rb b/test/ruby/test_thread.rb
index be8a28a14b..fe8e2384a0 100644
--- a/test/ruby/test_thread.rb
+++ b/test/ruby/test_thread.rb
@@ -97,21 +97,24 @@ class TestThread < Test::Unit::TestCase
def test_mutex_synchronize
m = Mutex.new
r = 0
- max = 10
- (1..max).map{
+ num_threads = 10
+ loop=100
+ (1..num_threads).map{
Thread.new{
- i=0
- while i<max*max
- i+=1
+ loop.times{
m.synchronize{
- r += 1
+ tmp = r
+ # empty and waste loop for making thread preemption
+ 100.times {
+ }
+ r = tmp + 1
}
- end
+ }
}
}.each{|e|
e.join
}
- assert_equal(max * max * max, r)
+ assert_equal(num_threads*loop, r)
end
def test_mutex_synchronize_yields_no_block_params