LINUX.ORG.RU

История изменений

Исправление cadogan, (текущая версия) :

Ты говоришь очевидные вещи, это итак понятно. Я просто хотел использовать в одном треде асинхронный евент луп :-) Вот такой код работает без проблем со слипами в основном треде.

    async def _run(self) -> None:
        self._pconnection.listen('notify_listing')
        self._exit = 1
        while True:
            if self._exit == 2:
                break
            self._handle_notify()
            await asyncio.sleep(1)

    def __call__(self, *args, **kwargs) -> None:
        loop: any = asyncio.new_event_loop()
        # loop.add_reader(self._pconnection.connection, self._handle_notify)
        loop.run_until_complete(self._run())
А вот если вместо бесконечного цикла заюзать add_reader, то уже не работает) Вообще все это затевалось чтобы заюзать add_reader, вместо цикла...

Исходная версия cadogan, :

Ты говоришь очевидные вещи, это итак понятно. Я просто хотел использовать в одном треде асинхронный евент луп :-) Вот такой код работает без проблем со слипами в основном треде.

    async def _run(self) -> None:
        self._pconnection.listen('notify_listing')
        self._exit = 1
        while True:
            if self._exit == 2:
                break
            self._handle_notify()
            await asyncio.sleep(1)

    def __call__(self, *args, **kwargs) -> None:
        loop: any = asyncio.new_event_loop()
        # loop.add_reader(self._pconnection.connection, self._handle_notify)
        loop.run_until_complete(self._run())
А вот если вместо бесконечного цикла заюзать add_reader, то уже не работает)