Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение
Ну так не интересно :) так придется от кучи либ отказаться.

В общем игрушка крутая, но в таком виде очень ограниченная.
Что то у меня не заработало.

fun main(args: Array<String>) {
    GlobalScope.launch {
         delay(1000L)
        suspendCancellableCoroutine<Unit> { continuation ->
            CoolLibrary.doStuff {
                delay(1000L)
                println("World!") // print after delay
                continuation.resume(Unit)
            }
        }
    }
    println("Hello,")
    Thread.sleep(2000L) 
}


Ругается delay внутри doStuff:
Error:(11, 17) Kotlin: Suspension functions can be called only within coroutine body


EDIT
Из вашего комента понял что и не должно
Т.е. внутри тела метода run я могу написать
 pause(10000)
(не помню точно как называется метод) и это освободит текущий поток и он сможет выполнять другую корутину? Звучит здорово. Интересно как они этого добились. Надо по изучать.
Как они умудряются копировать стек и работает ли это с нативными методами.
Я непонятно выразился. Внутри блока (тела метода run в Runnable) передаваемого в качестве параметра.

Откуда взялся пул потоков для корутин?

Ну корутины же выполняются на каких-то потоках? Я не знаю точно как та все устроено, просто предположил что есть некий пул. Или они все в одном потоке работают?

Мой основной вопрос вот в чем: вызов suspendCancellableCoroutine блокирующий?
Что будет с остальными корутинами в этот момент? Они заблокируются до окончания работы этого метода?
Я правильно понимаю что внутри я не смогу пользоваться всеми бонусами корутин и должен стартовать новую корутину?

При это если в пуле потоков для корутин закончатся потоки то вызов будет блокирующим?
Т.е. такой код убивает идею о том что можно запускать сколько угодно корутин потому что они дешевые.
А как быть с моей любимой библиотекой?
В ней есть метод

void foo(Runnable r);
Да, похоже я был не прав.
Если ошибка произошла на раннем этапе то SSL не поможет.
SSL решает все эти проблемы.
Слава богу я не вебдевелопер :)
А завтра они решат адреса в ссылки на карте превращать. Что тогда делать?
Я вас умоляю. Начинают с водки/пива. Давайте и алкоголь запретим.
А они UDP/IP6 при этом поддерживают?
Есть свитчи не поддерживающие IP?
С каких пор? Во времена моего детства TCP работал прямо по верх IP. Когда все поменялось?
Если не уберут то будет клево если Mail.RU подаст иск о клевете. Яндексу придется продемонстрировать свои внутренности в суде.
Курсы от такого не защитят.
Ой. Я там еще ошибся. Посчитал что в рабочей неделе 7 дней, а не 5.
Выходит 65 против 50.
Это я сглупил, согласен. получается что курсы стоили 30+35, а самостоятельно изучить стоило бы 70. Профит всего 5.
Вы забыли про старый добрый капитализм.

Самому разобраться в этом вашем куберенетесе нужна примерно неделя.

Допустим разработчик получает 100.000, значит компании он обходится в 200.000 (налоги, офис, печеньки). Получается 10.000 в день или 70.000 за неделю. Заплатив 35.000 компания экономит 35.000.
Я бы без анестезии ничего в продакшене патчить бы не решился. Как минимум 0.5 нужно.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность