Я немного не об этом говорю) по умолчанию канал блокирует поток при вызове метода чтения. Если поток заблокирован, то scope.cancel ничего с ним не сделает, а я хочу отменить текущее чтение. Получается, нужно использовать non-blocking режим чтения, и оборачивать его в cancellableCoroutine?
Я немного не об этом говорю) по умолчанию канал блокирует поток при вызове метода чтения. Если поток заблокирован, то scope.cancel ничего с ним не сделает, а я хочу отменить текущее чтение. Получается, нужно использовать non-blocking режим чтения, и оборачивать его в cancellableCoroutine?
Если все заблокировано и нет ручки на отмену (а она там все-таки есть), то ничего отменить нельзя.
Я немного не об этом говорю) по умолчанию канал блокирует поток при вызове метода чтения. Если поток заблокирован, то scope.cancel ничего с ним не сделает, а я хочу отменить текущее чтение. Получается, нужно использовать non-blocking режим чтения, и оборачивать его в cancellableCoroutine?
Можно закрывать канал при отмене (а отмену ловить через suspendCancellableCoroutine). Тогда чтение должно тут же закончиться с AsynchronousCloseException.
Можно закрывать канал при отмене (а отмену ловить через suspendCancellableCoroutine). Тогда чтение должно тут же закончиться с AsynchronousCloseException.
Можно закрывать канал при отмене (а отмену ловить через suspendCancellableCoroutine). Тогда чтение должно тут же закончиться с AsynchronousCloseException.
У меня сейчас просто flow{} и внутри открывается канал. Как туда впихнуть suspendCancellableCoroutine?