mirror of
https://github.com/telemt/telemt.git
synced 2026-09-17 15:58:31 +03:00
WEB: websocket + websocket-lanes as Carrier
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user