на 1 корутину создается 1 scheduler future, но если в корутине вызывать 3 suspend func, то у нас у стейт машины будет 3 состояния, когда мы вызываем 1 suspend func она нам возвращает SUSPEND, что в этот момент происходит с future и тред пулом?
Если suspend fun возвращает SUSPEND, значит, она где-то сохранила Continuation, кто-то его дёрнет, передав результат операции. Этот Continuation, если он intercepted (а он скорее всего такой), скажет шедулеру выполнить продолжение функции (следующий стейт), шедулер его запустит когда-нибудь. Как-то так 🙂
корутина, если надо, кладется на полочку до надобностт
Обсуждают сегодня