mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
8068d34cfe
This reverts r63900. Having single-execution benchmark as a normal Ruby script is preferred by ko1. I'm not a big fan of having inconsistent benchmark formats, but I can understand some benefits of it. common.mk: remove obsolsted benchmark-each PHONY declaration, support running Ruby scripts added by this commit. README.md: follow ARGS change git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
28 lines
476 B
Ruby
28 lines
476 B
Ruby
# two threads, two mutex, two condvar ping-pong
|
|
require 'thread'
|
|
m1 = Mutex.new
|
|
m2 = Mutex.new
|
|
cv1 = ConditionVariable.new
|
|
cv2 = ConditionVariable.new
|
|
max = 100000
|
|
i = 0
|
|
wait = nil
|
|
m2.synchronize do
|
|
wait = Thread.new do
|
|
m1.synchronize do
|
|
m2.synchronize { cv2.signal }
|
|
while (i += 1) < max
|
|
cv1.wait(m1)
|
|
cv2.signal
|
|
end
|
|
end
|
|
end
|
|
cv2.wait(m2)
|
|
end
|
|
m1.synchronize do
|
|
while i < max
|
|
cv1.signal
|
|
cv2.wait(m1)
|
|
end
|
|
end
|
|
wait.join
|