async fn run_coordinator<T, S>(
coord: Coordinator<T, S>,
external_rx: UnboundedReceiver<OpaqueMessage<T::SignatureKey>>,
tx: Sender<CoordinatorEvent<T>>,
queue_len: Option<Arc<dyn Gauge>>,
shutdown: CancellationToken,
exited: CancellationToken,
resting: Arc<RwLock<Resting<T>>>,
)where
T: NodeType,
S: NewProtocolStorage<T>,