summaryrefslogtreecommitdiff
path: root/spec/ruby/library/thread/shared/queue/num_waiting.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/thread/shared/queue/num_waiting.rb')
-rw-r--r--spec/ruby/library/thread/shared/queue/num_waiting.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/spec/ruby/library/thread/shared/queue/num_waiting.rb b/spec/ruby/library/thread/shared/queue/num_waiting.rb
new file mode 100644
index 0000000000..b054951e45
--- /dev/null
+++ b/spec/ruby/library/thread/shared/queue/num_waiting.rb
@@ -0,0 +1,16 @@
+describe :queue_num_waiting, shared: true do
+ it "reports the number of threads waiting on the queue" do
+ q = @object.call
+ threads = []
+
+ 5.times do |i|
+ q.num_waiting.should == i
+ t = Thread.new { q.deq }
+ Thread.pass until q.num_waiting == i+1
+ threads << t
+ end
+
+ threads.each { q.enq Object.new }
+ threads.each {|t| t.join }
+ end
+end