pub async fn listen<'terminal>(
        &'terminal mut self,
    ) -> Result<TerminalGuard<'terminal>, ServicesOff> {
        self.shared.events.subscribe().await;
        self.lock_now().await
    }
/// Listens for an event and only finishes when an event arrives. A locked
/// terminal handle is returned, on which an application can write to the
/// screen or get the most recent event, which will be present.
///
/// Screen is locked, event channel is locked.
Listens for an event and only finishes when an event arrives. A locked
terminal handle is returned, on which an application can write to the
screen or get the most recent event, which will be present.

Screen is locked, event channel is locked.
Listens for an event and only finishes when an event arrives . A locked terminal handle is returned on which an application can write to the screen or get the most recent event which will be present . Screen is locked event channel is locked .
pub async fn listen<'terminal>(
        &'terminal mut self,
    ) -> Result<TerminalGuard<'terminal>, ServicesOff> {
        self.shared.events.subscribe().await;
        self.lock_now().await
    }
pub async fn listen < ' terminal > ( & ' terminal mut self , ) -> Result < TerminalGuard < ' terminal > , ServicesOff > { self . shared . events . subscribe ( ) . await ; self . lock_now ( ) . await }
Listens for an event and only finishes when an event arrives.
Listens for an event and only finishes when an event arrives .
&'terminal mut self
&'terminal mut self