summaryrefslogtreecommitdiff
path: root/benchmark/vm_thread_condvar2.yml
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/vm_thread_condvar2.yml')
-rw-r--r--benchmark/vm_thread_condvar2.yml39
1 files changed, 0 insertions, 39 deletions
diff --git a/benchmark/vm_thread_condvar2.yml b/benchmark/vm_thread_condvar2.yml
deleted file mode 100644
index 5b5798c7c5..0000000000
--- a/benchmark/vm_thread_condvar2.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-prelude: |
- # many threads, one mutex, many condvars
-benchmark:
- vm_thread_condvar2: |
- require 'thread'
- m = Mutex.new
- cv1 = ConditionVariable.new
- cv2 = ConditionVariable.new
- max = 1000
- n = 100
- waiting = 0
- scvs = []
- waiters = n.times.map do |i|
- start_cv = ConditionVariable.new
- scvs << start_cv
- start_mtx = Mutex.new
- start_mtx.synchronize do
- th = Thread.new(start_mtx, start_cv) do |sm, scv|
- m.synchronize do
- sm.synchronize { scv.signal }
- max.times do
- cv2.signal if (waiting += 1) == n
- cv1.wait(m)
- end
- end
- end
- start_cv.wait(start_mtx)
- th
- end
- end
- m.synchronize do
- max.times do
- cv2.wait(m) until waiting == n
- waiting = 0
- cv1.broadcast
- end
- end
- waiters.each(&:join)
-loop_count: 1