Size: a a a

Kotlin Community

2020 January 10

ВС

Владислав Славетный in Kotlin Community
Nikita Kulikov
Такого слова не было. Я надеюсь вам в студенты никогда не попадется хороший человек
Злой ты
источник

AN

Alexander Nozik in Kotlin Community
Nikita Kulikov
Такого слова не было. Я надеюсь вам в студенты никогда не попадется хороший человек
Попадаются и много, просто они хотят разбираться.
источник

QH

Quantum Harmonizer in Kotlin Community
Nikita Kulikov
Такого слова не было. Я надеюсь вам в студенты никогда не попадется хороший человек
а вот это уже реально «токсично»
источник

QH

Quantum Harmonizer in Kotlin Community
Nikita Kulikov
А что за коммент //race?
между первым гетом и касом произошла запись из другого потока — типа гонка
источник

NK

Nikita Kulikov in Kotlin Community
А, логично
источник

ВС

Владислав Славетный in Kotlin Community
Quantum Harmonizer
а вот это уже реально «токсично»
Та это троль местный, что-то про майнкрафт задвигает вечно.
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Kulikov
Такого слова не было. Я надеюсь вам в студенты никогда не попадется хороший человек
Давайте без вот этого вот. Александр слегка перегнул палку, но вы вот такими прямыми выпадами как минимум на предупреждение напрашиваетесь.
источник

AM

Andrew Mikhaylov in Kotlin Community
Владислав Славетный
Та это троль местный, что-то про майнкрафт задвигает вечно.
И вы, пожалуйста, не занимайтесь тыканьем пальцами.
источник

ВС

Владислав Славетный in Kotlin Community
Andrew Mikhaylov
И вы, пожалуйста, не занимайтесь тыканьем пальцами.
Договорились
источник

AM

Andrew Mikhaylov in Kotlin Community
Спасибо!
источник

NK

Nikita Kulikov in Kotlin Community
Quantum Harmonizer
«Токсично» — самое нелепое стоп-слово, которое я только слышал
Зато Quantum понял что такое токсично :)
источник

AM

Andrew Mikhaylov in Kotlin Community
Он и до этого знал, поверьте :)
источник

NK

Nikita Kulikov in Kotlin Community
Andrew Mikhaylov
Давайте без вот этого вот. Александр слегка перегнул палку, но вы вот такими прямыми выпадами как минимум на предупреждение напрашиваетесь.
Хорошо, больше такого не будет
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Kulikov
Хорошо, больше такого не будет
Вот и ладненько.
источник

AO

Alexey Otts in Kotlin Community
Andrew Mikhaylov
Но лично я бы таки попробовал сплясать вокруг каналов.
Ну такое, референс тут само то, если надо кеш на разные параметры, то ConcurentHashMap
источник

QH

Quantum Harmonizer in Kotlin Community
ага, а там либо computeIfAbsent (но я вангую андроид), либо поиск дважды
источник

AM

Andrew Mikhaylov in Kotlin Community
Михаил
А мне ктонибудь подскажет?) Вижу два варика, кинуть в скоуп асинк Job(), завернуть асинк в coroutineScope {} . Мб еще есть варики покрасивее?
Да нет, до того и договорились -- асинки в скоуп / супервайзорскоуп, либо же тело асинков в runCatching и получение резалта из эвэйта.
источник

NK

Nikita Kulikov in Kotlin Community
Quantum Harmonizer
private val ref = AtomicReference<Deferred<Unit>>(null)
fun CoroutineScope.get(): Deferred<Unit> = ref.get() ?: run {
   var d: CompletableDeferred<Unit>
   if (ref.compareAndSet(null, CompletableDeferred<Unit>().also { d = it }))  {
       launch {
           TODO()
           d.complete(Unit)
       }
       d
   } else { // race
       ref.get()!!
   }
}
А зачем это сделано как экстеншен в CorutinScope, есть какой-то глубинный смысл?
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Kulikov
А зачем это сделано как экстеншен в CorutinScope, есть какой-то глубинный смысл?
А как иначе запускать задачу и получать Deferred? Этим билдеры корутин занимаются, в данном случае launch.
источник

AM

Andrew Mikhaylov in Kotlin Community
А они определены на скоупе.
источник