Module: Plushie::BoundedQueue

Defined in:
lib/plushie/bounded_queue.rb,
sig/plushie/bounded_queue.rbs

Overview

Small wrapper around SizedQueue for runtime mailboxes.

Constant Summary collapse

EVENT_CAPACITY =

Returns:

  • (Integer)
1024
CONNECTION_CAPACITY =

Returns:

  • (Integer)
1024
SESSION_CAPACITY =

Returns:

  • (Integer)
256

Class Method Summary collapse

Class Method Details

.new(capacity = EVENT_CAPACITY) ⇒ Thread::Queue[untyped]

Parameters:

  • capacity (Integer) (defaults to: EVENT_CAPACITY)

Returns:

  • (Thread::Queue[untyped])


12
13
14
# File 'lib/plushie/bounded_queue.rb', line 12

def new(capacity = EVENT_CAPACITY)
  SizedQueue.new(capacity)
end

.push(queue, item, timeout: nil) ⇒ Object

Parameters:

  • queue (Thread::Queue[untyped])
  • item (Object)
  • timeout: (Numeric, nil) (defaults to: nil)

Returns:

  • (Object)


16
17
18
19
20
21
22
23
24
# File 'lib/plushie/bounded_queue.rb', line 16

def push(queue, item, timeout: nil)
  if timeout
    queue.push(item, false, timeout: timeout)
  else
    queue.push(item)
  end
rescue ClosedQueueError
  nil
end

.try_push(queue, item) ⇒ Object

Parameters:

  • queue (Thread::Queue[untyped])
  • item (Object)

Returns:

  • (Object)


26
27
28
29
30
# File 'lib/plushie/bounded_queue.rb', line 26

def try_push(queue, item)
  queue.push(item, true)
rescue ClosedQueueError, ThreadError
  nil
end