Skip to main content

Using no signaller

Even when using signallers, pop operations on queue never block or wait forever; waiting pop operations are anyway terminated after 15000 millisecs or whatever specified in the pollInterval parameter) and silently re-initiated. That is, a pop() on an empty queue will appear blocked forever to the caller, but behind the scenes it'll work pretty much as if it were doing a poll every 15 secs

If a signaller is used (or if a signaller other than local is used, if push() and pop() happen on different machines) the pop() will be awaken almost immediately after the push(); if no signaller is used (or localis used, but the action happens in separated machines) pop() will behave exactly as if it were doing a poll() internally;

Another way to put it is, pop() operations would have a maximum latency of pollInterval millisecs, but also provides a safe backup in the event of signalling loss.