Size: a a a

Kotlin Community

2020 December 17

RK

Ruslan K in Kotlin Community
Привет.
Можно ли вынести continuation из suspendCoroutine и вызывать resume из другого callback’a?
Или как это лучше можно сделать? библиотека дает интерфейс, внутри suspend функция которую я должен реализовать, мне нужно приостановить работу этой функции, пока пользователь не введет нужные данные и затем возобновить приостановленную корутину после того как пользовать ввел данные
источник

AN

Alexander Nozik in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
@HeapyHop а чего убрали дискуссионную группу?

Я хотел сказать, что у них там в работе человеческий API для всего этого. Если есть интерес подумать над тем, как это лучше делать, пишите.
источник

I

Igor in Kotlin Community
Vladimir Petrakovich
А с чего оно должно прилетать в верхний ExceptionHandler, если например вызов этой функции обёрнут в try { }?
Вы бы объяснили свою задачу подробнее, пока вообще не понятно, зачем писать такой код.
Какой такой? с использованием ExceptionHandler? cмысл в том, чтобы собрать все ошибки в одном месте, и там обработать
источник

VP

Vladimir Petrakovich in Kotlin Community
Igor
так нет оберток в try
Сейчас нет, а потом вы или кто-то другой напишет, а работать, внезапно, не будет
источник

VP

Vladimir Petrakovich in Kotlin Community
Igor
Какой такой? с использованием ExceptionHandler? cмысл в том, чтобы собрать все ошибки в одном месте, и там обработать
"Такой" - это запуск чего-то "в фоне"
источник

I

Igor in Kotlin Community
Vladimir Petrakovich
Сейчас нет, а потом вы или кто-то другой напишет, а работать, внезапно, не будет
ну напишет, ну обработается ошибка локально, а не уйдет выше…
источник

I

Igor in Kotlin Community
Vladimir Petrakovich
"Такой" - это запуск чего-то "в фоне"
научный интерес
источник

I

Igor in Kotlin Community
Ruslan K
Привет.
Можно ли вынести continuation из suspendCoroutine и вызывать resume из другого callback’a?
Или как это лучше можно сделать? библиотека дает интерфейс, внутри suspend функция которую я должен реализовать, мне нужно приостановить работу этой функции, пока пользователь не введет нужные данные и затем возобновить приостановленную корутину после того как пользовать ввел данные
CompletableDeferred
источник

RK

Ruslan K in Kotlin Community
Igor
CompletableDeferred
спасибо, а можете подсказать почему с suspendCoroutine и continuation нельзя?
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
@HeapyHop а чего убрали дискуссионную группу?

Я хотел сказать, что у них там в работе человеческий API для всего этого. Если есть интерес подумать над тем, как это лучше делать, пишите.
Ну это был эксперимент, скоро 🤞будет возможность шарить всем новости через канал
источник

VP

Vladimir Petrakovich in Kotlin Community
Igor
научный интерес
Тогда норм. Но лучше всё-таки закинуть handler в scope, и вызывать всё на нём.
источник

SM

Sergey Morgunov in Kotlin Community
Друзья, никто не сталкивался с таким. Выношу inline extension-функцию из кода модуля в отдельную библиотеку и код модуля перестаёт компилироваться 😞
Компилятор ругаться начинает
[ERROR] Caused by: java.lang.IllegalStateException: Couldn't obtain compiled function body for …

В трекере что-то не могу найти багу с таким же описанием, а в то, что я первый, как-то с трудом верится 😀
Функция:

suspend inline fun <M, RES> EntityRef<M>.ask(timeout: Duration, noinline message: (ActorRef<RES>) -> M): RES = this.ask(message, timeout).await()
источник

VP

Vladimir Petrakovich in Kotlin Community
Sergey Morgunov
Друзья, никто не сталкивался с таким. Выношу inline extension-функцию из кода модуля в отдельную библиотеку и код модуля перестаёт компилироваться 😞
Компилятор ругаться начинает
[ERROR] Caused by: java.lang.IllegalStateException: Couldn't obtain compiled function body for …

В трекере что-то не могу найти багу с таким же описанием, а в то, что я первый, как-то с трудом верится 😀
Функция:

suspend inline fun <M, RES> EntityRef<M>.ask(timeout: Duration, noinline message: (ActorRef<RES>) -> M): RES = this.ask(message, timeout).await()
Если воспроизводится после clean build, остаётся только репортить баг
источник

SM

Sergey Morgunov in Kotlin Community
Vladimir Petrakovich
Если воспроизводится после clean build, остаётся только репортить баг
Да вот всё к этому идёт, но обычно первичная мысль о кривизне собственных рук, а не о баге компилятора 😀 Решил у сообщества спросить, может кто сталкивался с проблемой и расскажет как руки выпрямить 😂
источник

с#

саша сок #KotlinGang... in Kotlin Community
Sergey Morgunov
Да вот всё к этому идёт, но обычно первичная мысль о кривизне собственных рук, а не о баге компилятора 😀 Решил у сообщества спросить, может кто сталкивался с проблемой и расскажет как руки выпрямить 😂
странно, это явно что-то не рекомпилируется и clean build должен помочь
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну в том коде криминала нет. Попробуйте свести к минимальному примеру. Возможно, вы не рассказали о важных деталях.
источник

SM

Sergey Morgunov in Kotlin Community
Vladimir Petrakovich
Ну в том коде криминала нет. Попробуйте свести к минимальному примеру. Возможно, вы не рассказали о важных деталях.
Вот в процессе как раз. Если баг заводить, всё равно потом прикладывать придётся 😀
источник

SM

Sergey Morgunov in Kotlin Community
Набросал 5 строчек. Воспроизводится 😞
https://github.com/ihostage/kotlin-compiler-bug
Комментирую библиотечную функцию -> всё ок.
При том, что askWithStatusLocal и askWithStatus идентичны с точностью до названия.
источник

DS

Danil Shvets in Kotlin Community
Народ, скажите пожалуйста, сколько уйдёт на изучение Котлина, при условии что я знаю Java core. И тратить на Котлин по 2-3 часа в сутки???
источник