Size: a a a

Kotlin Community

2020 January 10

NK

Nikita Kulikov in Kotlin Community
compareAndSet :)))
источник

AN

Alexander Nozik in Kotlin Community
Nikita Kulikov
Коллега, кажется, ваши ответы неинформативны и токсичны.
Просто аргументация типа "не хочу разбираться" отбивает желание затрачивать силы на объяснения.
источник

QH

Quantum Harmonizer in Kotlin Community
Nikita Kulikov
Коллега, кажется, ваши ответы неинформативны и токсичны.
«Токсично» — самое нелепое стоп-слово, которое я только слышал
источник

QH

Quantum Harmonizer in Kotlin Community
Nikita Kulikov
compareAndSet :)))
там нет synchronized
источник

NK

Nikita Kulikov in Kotlin Community
Alexander Nozik
Просто аргументация типа "не хочу разбираться" отбивает желание затрачивать силы на объяснения.
Нет такой аргументации. Объективно, код намного сложнее чем код с synchronized. Больше специфичных слов, больше строк, больше блоков
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
Намного проще вообще на java писать, или лучше на С. Вообще ни с чем разбираться не надо
«разбираться в этом трешак» — это про понятность моего кода.
источник

AM

Andrew Mikhaylov in Kotlin Community
Quantum Harmonizer
«Токсично» — самое нелепое стоп-слово, которое я только слышал
В тебе просто твой внутренний токсик сразу триггерится, вот ты и бесишься.
(Я шучу, не баньте)
источник

AN

Alexander Nozik in Kotlin Community
Nikita Kulikov
Нет такой аргументации. Объективно, код намного сложнее чем код с synchronized. Больше специфичных слов, больше строк, больше блоков
Вам уже сказали, что тредную синхронизацию не стоит использовать с корутинами, и уж по крайней мере внутри суспенд блоков
источник

AN

Alexander Nozik in Kotlin Community
Может быть даже объяснят почему, если спросите
источник

NK

Nikita Kulikov in Kotlin Community
Alexander Nozik
Вам уже сказали, что тредную синхронизацию не стоит использовать с корутинами, и уж по крайней мере внутри суспенд блоков
Я пояснил что не всегда это так
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
Вам уже сказали, что тредную синхронизацию не стоит использовать с корутинами, и уж по крайней мере внутри суспенд блоков
но там не suspend-метод
источник

RM

Ruslan Molchanov in Kotlin Community
Nikita Kulikov
Нет такой аргументации. Объективно, код намного сложнее чем код с synchronized. Больше специфичных слов, больше строк, больше блоков
Просто Корутины — это не про блокировки. А synchronized- это про них. Это не хорошая идея мешать. Либо треды возьмите и synchronized, либо корутины и соответствующие примитивы.
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Может быть даже объяснят почему, если спросите
Да уже вроде объяснили. Человек сказал, что понимает, что делает, какие ещё вопросы могут быть.
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
но там не suspend-метод
как это? там рядом await
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Да уже вроде объяснили. Человек сказал, что понимает, что делает, какие ещё вопросы могут быть.
Ну ладно. Его дело.
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
как это? там рядом await
нет, то в моём первом примере, и он там оказался неуместен
источник

AN

Alexander Nozik in Kotlin Community
Quantum Harmonizer
нет, то в моём первом примере, и он там оказался неуместен
Ну ладно, ладно.
источник

AN

Alexander Nozik in Kotlin Community
Я немного тригернулся на "не хочу разбираться". Студентов с таким подходом я просто довольно быстро отправляю. Им нечего делать в профессии.
источник

NK

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

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()!!
   }
}
А что за коммент //race?
источник