summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/test/thread/lbtest.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/test/thread/lbtest.rb')
-rwxr-xr-xruby_1_8_6/test/thread/lbtest.rb51
1 files changed, 0 insertions, 51 deletions
diff --git a/ruby_1_8_6/test/thread/lbtest.rb b/ruby_1_8_6/test/thread/lbtest.rb
deleted file mode 100755
index 10bb90185f..0000000000
--- a/ruby_1_8_6/test/thread/lbtest.rb
+++ /dev/null
@@ -1,51 +0,0 @@
-#! /usr/bin/ruby
-require 'thread'
-
-class LocalBarrier
- def initialize(n)
- @wait = Queue.new
- @done = Queue.new
- @keeper = begin_keeper(n)
- end
-
- def sync
- @done.push(true)
- @wait.pop
- end
-
- def join
- @keeper.join
- end
-
- private
- def begin_keeper(n)
- Thread.start do
- n.times do
- @done.pop
- end
- n.times do
- @wait.push(true)
- end
- end
- end
-end
-
-n = 10
-
-lb = LocalBarrier.new(n)
-
-(n - 1).times do |i|
- Thread.start do
- sleep((rand(n) + 1) / 10.0)
- puts "#{i}: done"
- lb.sync
- puts "#{i}: cont"
- end
-end
-
-lb.sync
-puts "#{n-1}: done"
-
-# lb.join # leaving waiting threads.
-
-puts "exit."