Size: a a a

Kotlin Community

2020 March 10

AM

Andrew Mikhaylov in Kotlin Community
Alidibir Akhbulatov
реальный код такой:
val sink = Okio.buffer(Okio.sink(file))
sink.use {
   it.writeAll(source) // здесь долгое выполнение
}
writeAll можно заменить на цикл, где на каждой итерации перекладываются абстрактные 16 килобайт + стоит проверка ensureActive.
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
writeAll можно заменить на цикл, где на каждой итерации перекладываются абстрактные 16 килобайт + стоит проверка ensureActive.
+- про такое и думал )
источник

BP

Bogdan Panchenko in Kotlin Community
Это если дропать результат не нужно
источник

VP

Vladimir Petrakovich in Kotlin Community
Andrew Mikhaylov
writeAll можно заменить на цикл, где на каждой итерации перекладываются абстрактные 16 килобайт + стоит проверка ensureActive.
Нет гарантии, что всё не зависнет на очередной итерации
источник

AM

Andrew Mikhaylov in Kotlin Community
Тоже верно, конечно.
источник

AM

Andrew Mikhaylov in Kotlin Community
Но других вариантов нет, если, конечно, сама либа отмену не предлагает.
источник

BP

Bogdan Panchenko in Kotlin Community
+
источник

AN

Alexander Nozik in Kotlin Community
Alidibir Akhbulatov
Всем привет. Вопрос по корутинам: есть ли возможность чтобы CancellationException вызвался сразу после job.cancel? Кейс: идет долгий процесс буферизации потока файла, и после job.cancel хотелось бы в CancellationException закрыть поток пока он в процессе, но сейчас идет ожидание окончания процесса буф-и и после блок exception
Нельзя прерывать несуспедящий вызов. Вам надо внутрь вашей операции вставить проверки на прерывание.
источник

ПГ

Павло Гриник in Kotlin Community
Vladimir Petrakovich
Нет гарантии, что всё не зависнет на очередной итерации
Можно попробовать обернуть в withTimeout
источник

BP

Bogdan Panchenko in Kotlin Community
Павло Гриник
Можно попробовать обернуть в withTimeout
Вот это годная совет)
источник

VP

Vladimir Petrakovich in Kotlin Community
Павло Гриник
Можно попробовать обернуть в withTimeout
Он тут ничем не поможет, так как всего лишь отменяет корутину, а проблема в блокирующем коде
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Он тут ничем не поможет, так как всего лишь отменяет корутину, а проблема в блокирующем коде
От этого никак неубережешься
источник

AM

Andrew Mikhaylov in Kotlin Community
источник

AM

Andrew Mikhaylov in Kotlin Community
Кто там недавно хотел выбрасывать non-null проверки?)))
источник

sS

second_constantine Stupakevich in Kotlin Community
это когда на работе стало ну прямо очень скучно
источник

AM

Andrew Mikhaylov in Kotlin Community
second_constantine Stupakevich
это когда на работе стало ну прямо очень скучно
Вартону-то? Да, я думаю, целыми днями там скучает :)
источник

СГ

Сергей Греков in Kotlin Community
Andrew Mikhaylov
Вартону-то? Да, я думаю, целыми днями там скучает :)
Ну судя по последней активности и правда скучает. То android.jar патчит, теперь вот это
источник

AM

Andrew Mikhaylov in Kotlin Community
Сергей Греков
Ну судя по последней активности и правда скучает. То android.jar патчит, теперь вот это
Он просто, как говорится, уже настолько преисполнился в своём сознании... ну и дальше по тексту.
источник

sS

second_constantine Stupakevich in Kotlin Community
Andrew Mikhaylov
Вартону-то? Да, я думаю, целыми днями там скучает :)
ага, как вариант еще и для: "ля, смотри что могу". А если по делу, то бесполезная фича
источник

I

Ivansuper in Kotlin Community
Он там описал про оверхед инструкций в определенных ситуациях прямо на readme гитхаба. Если захотел один человек, то найдутся и другие, кому пригодится
источник