https://kotlinlang.org logo
#russian
Title
# russian
s

sannysoft

05/11/2018, 11:49 AM
Коллеги, подскажите, почему я получаю ок, а не timeout?
Copy code
runBlocking {
        val timeoutResult = async {
            withTimeoutOrNull(2000) {
                sleep(15000)
                "ok"
            }
        }.await() ?: "timeout"

        println(timeoutResult)
    }
e

Evgeniy Zaharov

05/11/2018, 11:56 AM
sleep
блокирует поток нужно вместо него использовать
dalay
s

sannysoft

05/11/2018, 12:00 PM
Да, с delay работает, но я раньше считал, что withTimeoutOrNull должен работать в любом случае убивая поток. Вопрос - есть ли возможность сделать аналог withTimeoutOrNull который будет убивать заблокированный поток?
e

Evgeniy Zaharov

05/11/2018, 12:01 PM
убить поток просто так нельзя
почти ничем 🙂
соответственно если есть блокирующий код, то корутина выполняемая на этом потоке все равно заблокируется
s

sannysoft

05/11/2018, 12:04 PM
Ok, спасибо!
9 Views