def wait(self, wait: float = 3) -> None:
        """Blocks execution until the App is closed by the user.

        All connected windows (tabs) must be closed before this method will
        unblock.

        Args:
            wait (3): the number of seconds to wait for a new App connection
                before returning if all connections are lost. If negative, the
                process will wait forever, regardless of connections
        """
        if focx.is_notebook_context():
            logger.warning("Notebook sessions cannot wait")
            return

        try:
            if wait < 0:
                while True:
                    time.sleep(10)
            else:
                self._wait_closed = False
                while not self._wait_closed:
                    time.sleep(wait)
        except KeyboardInterrupt:
            self._disable_wait_warning = True
            raise
Blocks execution until the App is closed by the user.

        All connected windows (tabs) must be closed before this method will
        unblock.

        Args:
            wait (3): the number of seconds to wait for a new App connection
                before returning if all connections are lost. If negative, the
                process will wait forever, regardless of connections
        
fiftyone/core/session/session.py