Email or username:

Password:

Forgot your password?
Мя :sparkles_lesbian:

Хммм, вот думаю как переводить контроль из одного класса в другой
При том, что нужно использовать данные с прошлого этапа в следующем...

Обидно что питоновский асинкио не осилил по человечески сделать даже паттерн fire-and-forget :(

6 comments
Мя :sparkles_lesbian:

Стоп что. Осилил что ли? С какой версии?

Мя :sparkles_lesbian:

А нет, не научился

Important
Save a reference to the result of this function, to avoid a task disappearing mid-execution. The event loop only keeps weak references to tasks. A task that isn’t referenced elsewhere may get garbage collected at any time, even before it’s done. For reliable “fire-and-forget” background tasks, gather them in a collection

Просто у меня на тестах GC видимо не пришёл. Почему он не пришёл, вопрос открытый

Мя :sparkles_lesbian:

Вот что мешало хранить в event loop сильные ссылки, а? В конце концов, треды же не завершаются от прихода gc. Ты просто теряешь над ними контроль. Почему гринтреды (aka Task) должны работать по другому? Чтобы все страдали?

Мя :sparkles_lesbian:

Существует ровно 0 причин тихо уничтожать таску сборщиком мусора. Если надо её в определенный момент завершить, ну так алло, у вас есть .cancel() в либе и менеджеры контекста в языке

Мя :sparkles_lesbian:

Самое смешное, что это даже обратной совместимостью сложно оправдать
Ее в питоне нет, новая версия регулярно что-то отламывает

Более того, если евентлуп станет внезапно хранить сильные ссылки, у тех кто использовали ваш официальный костыль с set() ничего не сломается! Просто костыль станет не нужным, но работать то все продолжит!

Мя :sparkles_lesbian:

Я не верю, что кто-то на полном серьезе полагается на то, что gc когда нибудь придет и когда нибудь хз когда без предупреждения прервёт процесс

Go Up