170 похожих чатов

Всем привет, подскажите пожалуйста как можно исправить ошибку RuntimeError('Event loop

is closed')?
Запускаю две функции, в них ошибок нет, всё корректно отрабатывает, но потом получаю ошибку. Подскажите как можно это исправить?
def go():
asyncio.run(main())
asyncio.run(create_new_client())


threading.Thread(target=go).start()

Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x00000174EBB49C10>
Traceback (most recent call last):
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
self.close()
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 108, in close
self._loop.call_soon(self._call_connection_lost, None)
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 746, in call_soon
self._check_closed()
File "C:\Users\dev\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

20 ответов

58 просмотров

Вместо asyncio.run юзай loop=get_event_loop() loop.run_until_complete

сделай go аиснхронной и стартуй её как мейн

All Cats
Почему?

потому что это какие-то костыли

Tishka17
сделай go аиснхронной и стартуй её как мейн

как именно мне это сделать, подскажите пожалуйста

Олександр Бондаренко
да)

тогда отложи пока свой код и почитай что-нибудь про asyncio

Олександр Бондаренко
а по коду как быть?

не спеши, выдохни, почитай что такое асинхронные функции, как они работают, зачем нужен asyncio.run и что происходит при await

Tishka17
сделай go аиснхронной и стартуй её как мейн

нужно сделать что-то вроде такого? Я почитал про абстракции) async def tasks(): await main() await create_new_client() def go(): asyncio.run(tasks()) threading.Thread(target=go).start()

Tishka17
а тред тебе зачем?

сразу вызвать go и всё? А почему если запустить потоки для разных асинхронных задач будет плохо?

Олександр Бондаренко
сразу вызвать go и всё? А почему если запустить по...

потому что асинкио не потокобезопасен и фактически создан как альтернатива потокам

Tishka17
потому что асинкио не потокобезопасен и фактически...

и ещё вопрос если можно, в чём именно проявляется проблема с потокобезопасностью, я же просто жду результата выполнения функции, и когда статус finished отдаю её результат.

Tishka17
а тред тебе зачем?

запустил код и получил такую же ошибку, что я не так делаю?

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта