WEB: websocket + websocket-lanes as Carrier

This commit is contained in:
Alexey
2026-08-26 09:16:06 +03:00
parent 8e577ec5ca
commit d2edd90479
50 changed files with 3642 additions and 350 deletions
+10 -2
View File
@@ -246,11 +246,19 @@ impl RuntimeGeneration {
/// Registers a session only while admission remains open.
pub(crate) fn spawn_session<F>(&self, future: F) -> bool
where
F: Future<Output = ()> + Send + 'static,
{
self.try_spawn_session(future).is_ok()
}
/// Registers one session or returns its unpolled future to the caller.
pub(crate) fn try_spawn_session<F>(&self, future: F) -> Result<(), F>
where
F: Future<Output = ()> + Send + 'static,
{
let Some(_registration) = self.session_admission.try_register() else {
return false;
return Err(future);
};
let cancel = self.session_cancel.clone();
self.sessions.spawn(async move {
@@ -259,7 +267,7 @@ impl RuntimeGeneration {
_ = future => {}
}
});
true
Ok(())
}
/// Closes admission while preserving already registered sessions.
+2 -5
View File
@@ -318,11 +318,8 @@ pub(super) async fn run_telemt_core(
active_runtime_tx.send_replace(Some(active_runtime.clone()));
runtime_tasks::mark_runtime_ready(&startup_tracker).await;
let listener_manager = listeners::ListenerManager::start(
bound,
active_runtime.clone(),
web_trace.clone(),
);
let listener_manager =
listeners::ListenerManager::start(bound, active_runtime.clone(), web_trace.clone());
let reload_supervisor = reload_supervisor::ReloadSupervisor::spawn(
active_runtime.clone(),
reload_control,