Serve concurrent terminal sessions with exact teardown
This commit is contained in:
parent
917409fcc6
commit
254bb37764
1 changed files with 278 additions and 51 deletions
|
|
@ -20,8 +20,9 @@ use lazaret_storage_catalog::Catalog;
|
|||
|
||||
use crate::control::ControlSessionAdmission;
|
||||
use crate::control::{
|
||||
ControlError, InteractiveSessionExecutor, NonInteractiveSessionExecutor, PublishedControlFace,
|
||||
SessionRegistry, StagedControlFace, TrustAnchor,
|
||||
AcceptedControlConnection, ControlError, InteractiveSessionExecutor,
|
||||
NonInteractiveSessionExecutor, PublishedControlFace, SessionRegistry, StagedControlFace,
|
||||
TrustAnchor,
|
||||
};
|
||||
use crate::domain_store::{DomainStoreMutation, HostCoordinatorDomainStore};
|
||||
use crate::git_routing::GitRoutingCoordinator;
|
||||
|
|
@ -682,7 +683,17 @@ pub fn serve_production_control(
|
|||
.adapter()
|
||||
.published_control()
|
||||
.ok_or(ControlError::StaleGeneration)?;
|
||||
face.serve_next_coordinated(
|
||||
let connection = face.accept_connection()?;
|
||||
serve_production_control_connection(lifecycle, &face, connection)
|
||||
}
|
||||
|
||||
pub(crate) fn serve_production_control_connection(
|
||||
lifecycle: &Mutex<ProductionHostCoordinatorLifecycle<'_, '_>>,
|
||||
face: &PublishedControlFace,
|
||||
connection: AcceptedControlConnection,
|
||||
) -> Result<(), ControlError> {
|
||||
face.serve_connection_coordinated(
|
||||
connection,
|
||||
|admission| {
|
||||
lifecycle
|
||||
.lock()
|
||||
|
|
|
|||
Loading…
Reference in a new issue