1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! **The bounded hold** (REMOTE §3, §5.5): what one look at this lane can
//! find, how long a quiet read waits before it lets the seat re-ask, and the
//! parking that turns [`Follow::poll`](super::Follow::poll) into a frame
//! sequence.
//!
//! Its own file beside the readers rather than inside them, on the seam
//! [`super`]'s own doc draws: `poll` is the **mechanism** — one look at the
//! world, taken now, with no clock and no sleep in it, which is why a test can
//! drive the whole lane look by look — and everything here is the *patience*
//! around it. Splitting them keeps that separation a fact of the tree rather
//! than a sentence about it.
use Duration;
use ;
use crateStream;
/// How long a quiet follow read holds before it ends the stream and lets the
/// seat re-ask: 1875 looks, 16 ms apart — thirty seconds, the mailbox hold's
/// own bound. The tick is the §7.2 follower's own period, which is what "at
/// write cadence" means in a number: half the §11 pulse, so a repaint that was
/// going to happen carries the newest bytes rather than the previous look's.
///
/// `pub(super)` because the attention lane holds on the **same** bound (REMOTE
/// §14.1: "the follow lane's bounded-hold discipline applies unamended") — one
/// pair of numbers, not two that can drift apart.
pub const HOLD_WAITS: u32 = 1875;
pub const HOLD_TICK: Duration = from_millis;
/// What one look found — [`Follow::poll`]'s answer, and the whole vocabulary a
/// held read has. [`Iterator::next`] is this plus the parking, which is why a
/// test can drive the mechanism with no clock and no sleep at all.
pub