summaryrefslogtreecommitdiff
path: root/benchmark/vm_thread_mutex3.rb
blob: c750dc542a38a842bdc17c0017d0ce28e8d8af77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 1000 threads, one mutex

require 'thread'
m = Thread::Mutex.new
r = 0
max = 2000
(1..max).map{
  Thread.new{
    i = 0
    while i<max
      i += 1
      m.synchronize{
        r += 1
      }
    end
  }
}.each{|e|
  e.join
}
raise r.to_s if r != max * max