@classmethod
def stop(cls, force: bool=False) ->None:
    """
        Stop supervisor thread.

        Actual stop performed on force == True or if  number of stops == number of starts

        :param force: force stop regardless number of start.
        :return: None
        """
    with cls._lock:
        if not cls._supervisor_thread:
            return
        cls._start_count -= 1
        if cls._start_count <= 0 or force:
            cls._loop.call_soon_threadsafe(cls._stopped_future.set_result, True
                )
            cls._supervisor_thread.join()
            cls._supervisor_thread = None
