aboutsummaryrefslogtreecommitdiffstats
path: root/src/access/screen.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/access/screen.rs')
-rw-r--r--src/access/screen.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/access/screen.rs b/src/access/screen.rs
index beae149..a4ecdc2 100644
--- a/src/access/screen.rs
+++ b/src/access/screen.rs
@@ -82,13 +82,15 @@ pub(crate) struct Screening {
/// Which change an empty document of the first epoch takes as its root: any (nothing
/// heard of it, nor given), the one given (`--genesis-root`) or that its peers name, or
-/// none while they name different ones.
+/// none while they name different ones, or while a joining node waits for its seeds to
+/// name theirs (`swarm::roots`).
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub(crate) enum RootPin {
#[default]
Any,
Only(ChangeHash),
Disputed,
+ Awaiting,
}
/// A member refused as a whole: since when, for which change of its, and why.
@@ -691,7 +693,8 @@ pub(crate) fn apply_bytes(
let mut screening = screening.lock_or_recover();
let screening = screening.of(epoch_seq);
// Into an empty document of the first epoch, a root only as pinned: one given or
- // named by the peers, none while they disagree (left for later). What builds on a
+ // named by the peers, none while they disagree or the seeds are awaited (left for
+ // later). What builds on a
// root refused is refused with it; on one left, it waits.
let mut pinned_out = Vec::new();
if epoch.generation == 0 && doc.get_heads().is_empty() && screening.root_pin != RootPin::Any {