Module: OMQ::Routing::FairRecv

Included in:
Dealer, Pair, Pull, Rep, Req, Router
Defined in:
lib/omq/routing/fair_recv.rb

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

Instance Method Details

#dequeue_recvArray<String>?

Dequeues the next received message. Blocks until one is available. Engine-facing contract — Engine must not touch @recv_queue directly.

Returns:

  • (Array<String>, nil)


15
16
17
# File 'lib/omq/routing/fair_recv.rb', line 15

def dequeue_recv
  @recv_queue.dequeue
end

#unblock_recvvoid

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