Class: FiberStream::Pull::Merge::MergeMailbox

Inherits:
Object
  • Object
show all
Defined in:
lib/fiber_stream/pull/merge.rb

Constant Summary collapse

Closed =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initialize(capacity) ⇒ MergeMailbox

Returns a new instance of MergeMailbox.



208
209
210
# File 'lib/fiber_stream/pull/merge.rb', line 208

def initialize(capacity)
  @queue = Thread::SizedQueue.new(capacity)
end

Instance Method Details

#closeObject



224
225
226
# File 'lib/fiber_stream/pull/merge.rb', line 224

def close
  @queue.close
end

#popObject



218
219
220
221
222
# File 'lib/fiber_stream/pull/merge.rb', line 218

def pop
  @queue.pop
rescue ClosedQueueError
  raise Closed
end

#push(message) ⇒ Object



212
213
214
215
216
# File 'lib/fiber_stream/pull/merge.rb', line 212

def push(message)
  @queue << message
rescue ClosedQueueError
  raise Closed
end