summaryrefslogtreecommitdiff
path: root/benchmark/vm_thread_sized_queue.rb
blob: 7b9af5482b01f9ecb548d38eb0a3f6c4779d744f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
require 'thread'
# on producer, one consumer

n = 1_000_000
q = Thread::SizedQueue.new(100)
consumer = Thread.new{
  while q.pop
    # consuming
  end
}

producer = Thread.new{
  while n > 0
    q.push true
    n -= 1
  end
  q.push nil
}

consumer.join