Skip to main content

take_sink_changed

Function take_sink_changed 

Source
pub fn take_sink_changed() -> bool
Expand description

True ONCE after the sink changed, then false until it changes again.

A restarted sink starts EMPTY, and a publisher on an interval does not fill it again until its next boundary - up to 64 messages for msgs.received. For a quiet service that is a long time to have no row, and a service with no row is indistinguishable from a dead one, which is the single question this metric answers. 14.3 says a client reacquires AND re-establishes what hung off the old instance; a counter the new sink has never seen is exactly that.

Cheap on the hot path: a relaxed LOAD on the common (unchanged) call, and the swap only in the rare tick that follows a restart.