Module: OMQ::Routing::FairRecv
Overview
Mixin that adds per-connection recv queue setup for fair-queued sockets.
Including classes must have @engine, @recv_queue (FairQueue), and @tasks.
Instance Method Summary collapse
-
#dequeue_recv ⇒ Array<String>?
Dequeues the next received message.
-
#unblock_recv ⇒ void
Wakes a blocked #dequeue_recv with a nil sentinel.
Instance Method Details
#dequeue_recv ⇒ Array<String>?
Dequeues the next received message. Blocks until one is available. Engine-facing contract — Engine must not touch @recv_queue directly.
15 16 17 |
# File 'lib/omq/routing/fair_recv.rb', line 15 def dequeue_recv @recv_queue.dequeue end |
#unblock_recv ⇒ void
This method returns an undefined value.
Wakes a blocked #dequeue_recv with a nil sentinel. Called by Engine on close (close_read) or fatal-error propagation.
25 26 27 |
# File 'lib/omq/routing/fair_recv.rb', line 25 def unblock_recv @recv_queue.push(nil) end |