Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Durable turn persistence host: a Commonware-runtime event log bridged to the tokio control plane.
commonware-runtime cannot be nested inside tokio —
commonware_runtime::tokio::Runner::start builds its own multi-threaded
tokio runtime and would panic on a nested block_on if called from within
a live tokio runtime. So the event log runs on a dedicated OS thread
that owns a Commonware tokio runtime; the tokio control plane talks to it
over channels. That generic bridge (thread spawn, ready handshake, command
loop, post-cancel drain) is [polyc_host] — the same shape
polyc_persona::PersonaHost uses. This host is sharded (NUM_SHARDS
independent polyc_host::HostHandles, one per shard) rather than a single
dedicated thread — see [EventLogHost]'s own doc for why, and its [Drop]
impl for the one place this host layers something on top of polyc-host's
generic drop-tx-then-join semantics.
Bridge shape
tokio control plane dedicated OS thread
─────────────────── ───────────────────
EventLogHost::append_batch(..) ── Command ──▶ commonware tokio Runner.start(|ctx| {
(tokio mpsc send) EventLog::open(ctx, ..)
◀── oneshot ack ── loop { rx.recv() -> appends + commit }
On startup [EventLogHost::spawn] launches every shard's thread and blocks
(briefly, off the async path) until each has reported readiness.
[EventLogHost::append_batch] is async and callable from tokio: it
enqueues one Command (a whole turn's events) and awaits a oneshot ack.
Dropping the host (or cancelling its [CancellationToken]) cancels every
shard, which drains its loop, syncs its logs, lets Runner::start return,
and joins its thread — clean shutdown.