Size: a a a

Kotlin Community

2020 May 12

IO

Iaroslav Orlov in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
runBlocking внутри корутины?
источник

AN

Alexander Nozik in Kotlin Community
а что оно должно делать?
источник

IO

Iaroslav Orlov in Kotlin Community
у меня есть долгая операция, которую нужно как-то прервать, если вышло время
источник

IO

Iaroslav Orlov in Kotlin Community
и вернуть результат/null
источник

ПГ

Павло Гриник... in Kotlin Community
Тогда может withTimeout использовать
источник

IO

Iaroslav Orlov in Kotlin Community
проблема в том, что withTimeout требует точки suspend'а, где корутина убьется, если вышло время
источник

ПГ

Павло Гриник... in Kotlin Community
А разве с тредами не так же?
источник

IO

Iaroslav Orlov in Kotlin Community
нет. тред можно interrupt'ить
источник

IO

Iaroslav Orlov in Kotlin Community
и он выкинет исключение, что бы там не происходило
источник

IO

Iaroslav Orlov in Kotlin Community
более того, есть еще Thread.stop (хоть он и депрекейтед), который убьет всё, даже если там JNI
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
нет. тред можно interrupt'ить
нельзя. Категорически. interrupt не зря помечен как deprecated
источник

IO

Iaroslav Orlov in Kotlin Community
interrupt не депрекейтед
источник

VP

Vladimir Petrakovich in Kotlin Community
Iaroslav Orlov
и он выкинет исключение, что бы там не происходило
Он выкинет исключение только в точке, из которой оно может вылетать (оно же checked)
источник

AN

Alexander Nozik in Kotlin Community
interrupt кстати если я правильно помню не прерывает выполнение, он только флажок поднимает, который руками надо проверять
источник

IO

Iaroslav Orlov in Kotlin Community
Vladimir Petrakovich
Он выкинет исключение только в точке, из которой оно может вылетать (оно же checked)
то есть в любом случае нужно оставлять там delay либо sleep?
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
interrupt кстати если я правильно помню не прерывает выполнение, он только флажок поднимает, который руками надо проверять
да, это же не stop, который правда deprecated и удалён
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
interrupt кстати если я правильно помню не прерывает выполнение, он только флажок поднимает, который руками надо проверять
Да всё ровно так же, как с suspend, только флажок можно снять при желании или случайно
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
то есть в любом случае нужно оставлять там delay либо sleep?
Просто нет способов прервать выполнение в произвольной точке безопасным образом.
источник

VP

Vladimir Petrakovich in Kotlin Community
Iaroslav Orlov
то есть в любом случае нужно оставлять там delay либо sleep?
В любом случае ожидание должно быть прерываемо
источник