Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
titleNot Running to Inactive
@startuml

autonumber

participant ApplicationManager
participant RialtoServerManager

ApplicationManager             ->  RialtoServerManager:               ChangeApplicationState(application_id, AppState::Inactive)
RialtoServerManager            ->  RialtoServerManager:               Generate unique session_management_socket_name for App to Rialto Session Server communication
RialtoServerManager            ->  RialtoServerManager:               Generate socketpair for Rialto Session Server to Server Manager communication
RialtoServerManager            ->  RialtoApplicationSessionServer **: Spawn(socketpair, session_management_socket_name, AppState::Inactive)
RialtoServerManager            ->  RialtoServerManager:               Start [1] second READY timer
RialtoServerManager            --> ApplicationManager:                OK/ERROR
RialtoApplicationSessionServer ->  RialtoApplicationSessionServer:    Allocate shared memory buffer
RialtoApplicationSessionServer ->  RialtoApplicationSessionServer:    Create listening socket & bind to session_management_socket_name
RialtoApplicationSessionServer ->  RialtoApplicationSessionServer:    Set current_state = Inactive

alt Previous steps succeeded (alloc shm, create socket, Connect)

RialtoApplicationSessionServer -// RialtoServerManager:    StateChanged(AppState::Inactive)
RialtoServerManager            ->  RialtoServerManager:    Cancel READY timer
RialtoServerManager            -// ApplicationManager:     StateChanged(application_id, AppState::Inactive)
ApplicationManager             ->  RialtoServerManager:    GetAppConnectionInfo()
RialtoServerManager            --> ApplicationManager:     session_management_socket_name

else Session Server initialisation failed

RialtoApplicationSessionServer ->  RialtoApplicationSessionServer:    Close IPC connection with app
RialtoApplicationSessionServer ->  RialtoApplicationSessionServer:    Close listening socket (if created)
RialtoApplicationSessionServer ->  RialtoApplicationSessionServer:    Unmap shared memory (if created)
RialtoApplicationSessionServer -// RialtoServerManager:    StateChanged(AppState::Error)
RialtoServerManager            ->  RialtoServerManager:    Cancel READY timer
RialtoApplicationSessionServer ->  RialtoApplicationSessionServer !!: Exit process
RialtoServerManager            -// ApplicationManager:     StateChanged(application_id, AppState::Error)

else READY timer expired

RialtoServerManager            ->  RialtoServerManager:    Kill spawned Rialto Application Session Server process
RialtoServerManager            -// ApplicationManager:     StateChanged(application_id, AppState::Error)

end

@enduml

...