Size: a a a

Kotlin Community

2020 June 19

КР

Кирилл Романенко... in Kotlin Community
Dmitry
Вообщем я никак не ожидал, что когда позову лаунч в одном потоке, у меня содержимое начнет в других исполняться, потому что там были переключения...
Наоборот, это не логично. Когда ты вызываешь launch, ты как бы шедулишь какую-то таску. Ожидать что она будет выполняться на том же потоке - ну камон.
источник

D

Dmitry in Kotlin Community
Кирилл Романенко
Наоборот, это не логично. Когда ты вызываешь launch, ты как бы шедулишь какую-то таску. Ожидать что она будет выполняться на том же потоке - ну камон.
На том, где я ее вызвал.
источник

D

Dmitry in Kotlin Community
А она выполняется на другом, потому что там один из шагов был сходить в базу в другом шедулере.
источник

BP

Bogdan Panchenko in Kotlin Community
Dmitry
Млн, это не очевидно, этого не хватает в джавадоке...
Я это понял по иерархии наследования
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry
На том, где я ее вызвал.
Ну если этот поток не умеет принимать задачи на продолжение выполнения, то в том же потоке оно никак не продолжится.
Да и это не всегда нужно. А когда нужно, в контекст запихивается диспатчер (Main, например).
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry
Млн, это не очевидно, этого не хватает в джавадоке...
источник

D

Dmitry in Kotlin Community
Было бы здорово напомнить об этом в джавадоке к пустому контексту. Там как раз доки нет.
источник

D

Dmitry in Kotlin Community
Ну не буду же я читать документацию к фреймворке перед тем как его использовать 😂
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry
Ну не буду же я читать документацию к фреймворке перед тем как его использовать 😂
Ну вот да, такие вещи непонятно куда пихать в джавадок, чтобы их было видно.
Так-то это частично поведение корутин в самом котлине, не связанное с kotlinx.coroutines. Такие особенности могли бы быть описаны в доке у suspendCoroutine (но почему-то нет 🤔).
источник

D

Dmitry in Kotlin Community
Не, так глубоко мало кто проваливается. Тут просто, я проваливаюсь в билдер, там назначаются дефолтные параметры. Вот у этих параметров и должно быть написано в джавадоке, кто они такие. Что пустой контекст - это когда он остается в том потоке, из которого его разбудили и ошибки не ловит - смотрите поведение тут.
источник

D

Dmitry in Kotlin Community
Ну и описание билдера и его параметров, который вызываю в своем коде, прочитать вполне удобно и быстро. Это не сидеть в рабочее время читать общую документацию для общего развития...
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry
Ну и описание билдера и его параметров, который вызываю в своем коде, прочитать вполне удобно и быстро. Это не сидеть в рабочее время читать общую документацию для общего развития...
Ну мне казалось, что лучше как раз таки почитать общую документацию перед тем, как начать что-то делать.
В случае с каким-нибудь спрингом это конечно довольно долго, но дока по корутинам достаточно небольшая.
источник

AM

Andrew Mikhaylov in Kotlin Community
Vladimir Petrakovich
Ну мне казалось, что лучше как раз таки почитать общую документацию перед тем, как начать что-то делать.
В случае с каким-нибудь спрингом это конечно довольно долго, но дока по корутинам достаточно небольшая.
Всё так. Мне тоже думается, что kotlinx.coroutines непосредственно осваивать по джавадокам -- так себе затея.
источник

AM

Andrew Mikhaylov in Kotlin Community
Тем более есть пачка хорошо написанных материалов в репозитории.
источник

AM

Andrew Mikhaylov in Kotlin Community
В том числе факт того, что элемент контекста ведёт себя, как контекст из одного элемента, алгоритм сложения контекстов и факт того, что билдеры корутин складывают контекст, на котором они были вызваны, с контекстом, который им параметром передан.
источник

AN

Alexander Nozik in Kotlin Community
Dmitry
На том, где я ее вызвал.
Это ответственность диспатчера. Корутины в общем случае ортогональны потокам
источник

IO

Iaroslav Orlov in Kotlin Community
из-за чего в котлине всё-таки выпилили wait, notify (all)?
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
из-за чего в котлине всё-таки выпилили wait, notify (all)?
Почему выпилили? У треда оно как бы осталось
источник

IO

Iaroslav Orlov in Kotlin Community
ну а в Any?
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
ну а в Any?
а зачем?
источник