pub struct MailCarrier;Expand description
The mailbox’s own delivery (D140): every message filed with a wake (by a filer that does not wait, such as a board’s
dispatcher, or by a send to a hooked session) is handed to its session by the session’s own door, by the daemon that
runs this watch loop. Mail for another machine is carried there through Teams (supercode teams mail), the only
cross-machine leg, and filed with the same wake, so that machine’s watch loop delivers it. A failed attempt waits
[FIRST_RETRY] doubling to [LAST_RETRY], kept in the wake itself, so a restarted watcher waits as the last one
did. A wake expires only once it has failed WAKE_ATTEMPTS counted times and its first counted failure is older
than its bound (LOCAL_WAKE_LIFETIME here, REMOTE_WAKE_LIFETIME for another machine): the message stays filed
and unread, and the expiry is recorded in its mailbox (supercode message expired), which the board’s diagnostics
read. Mail for a machine that is offline is not failing: it is offered again every [LAST_RETRY] until the machine
links, and never expires for that.
Implementations§
Source§impl MailCarrier
impl MailCarrier
Sourcepub async fn tick(&mut self, homes: &HarnessHomes)
pub async fn tick(&mut self, homes: &HarnessHomes)
One pass over every mailbox holding a wake that is due.