Class: FiberStream::Pull::RactorMergePortsSource::RactorMergeResultMailbox

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

Constant Summary collapse

Closed =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initialize(capacity) ⇒ RactorMergeResultMailbox

Returns a new instance of RactorMergeResultMailbox.



351
352
353
# File 'lib/fiber_stream/pull/ractor_merge_ports_source.rb', line 351

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

Instance Method Details

#closeObject



367
368
369
# File 'lib/fiber_stream/pull/ractor_merge_ports_source.rb', line 367

def close
  @queue.close
end

#popObject



361
362
363
364
365
# File 'lib/fiber_stream/pull/ractor_merge_ports_source.rb', line 361

def pop
  @queue.pop
rescue ClosedQueueError
  raise Closed
end

#push(result) ⇒ Object



355
356
357
358
359
# File 'lib/fiber_stream/pull/ractor_merge_ports_source.rb', line 355

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