
Алексей
02.05.2018
15:02:49

Машков
02.05.2018
15:04:18
Если вызывается не-suspend функция, то внутри такой обычной функции всегда можно тспользовать, так как засыпание в ней не может произойти никогда

Vladimir
02.05.2018
15:06:05

Машков
02.05.2018
15:07:49
Все примитивы AtomicXxx модно использовать как обычно

Google

Машков
02.05.2018
15:08:15
А также их производные

Алексей
02.05.2018
15:08:20
В любом случае, очень многое прояснилось
Спасибо огромное

Quantum Harmonizer
02.05.2018
15:27:19
Кто что делает со слепостью JaCoCo к инлайновым функциям?
Или проще забить?)

Машков
02.05.2018
15:48:29
Встроенный в идею кавередж работает более менее правильно с инлайн-функциями
За исключением некоторых нюансов
Как починить jacoco неизвестно: не уверен, разбирплся ли кто-то с этим

Quantum Harmonizer
02.05.2018
15:52:10
можно на Travis запускать IDEA Coverage? :) Так-то всё в нём хорошо...

Никита?❄️
02.05.2018
16:10:35
пипл, есть вопрос:
я взял рекомендованный выше ktor и внутри корутины его запускаю. во всех тестах, как бы не конфигурировал ktor, получаю 1000 запросов в секунду. ровно. в чём может быть проблема? сейчас скину код.

Google

Никита?❄️
02.05.2018
17:56:55

Mi
02.05.2018
17:58:04
Так а пул случаем не размером 1000?

Никита?❄️
02.05.2018
17:58:27
и не 1000, а 100 выходит
а, не пул корутин надо редачить.
endpoint.apply {
maxConnectionsPerRoute = 1000
}

Bogdan
02.05.2018
18:32:28
странный ктор, на спринг ужасно похожий

Никита?❄️
02.05.2018
18:33:01
ну, типа, не задержки же сети смотреть, а чисто чекать производительность фреймворка
от ктора мне нужен только http-клиент

Quantum Harmonizer
02.05.2018
19:42:20
жесть какая-то

Никита?❄️
02.05.2018
19:42:43

Quantum Harmonizer
02.05.2018
19:43:00

Ivan
02.05.2018
20:48:17

Никита?❄️
02.05.2018
20:49:58

Quantum Harmonizer
02.05.2018
20:51:01

Ivan
02.05.2018
21:00:49

Никита?❄️
02.05.2018
21:01:17
ну я корутины месяца 3-4 как юзаю
и мне норм

Google

Никита?❄️
02.05.2018
21:01:41
хотя вот есть фичи, которых не хватает

Ivan
02.05.2018
21:03:13

Никита?❄️
02.05.2018
21:04:14
типа, вместо delay(150) можно было юзнуть Thread.sleep(150)
удобно было бы

Ivan
02.05.2018
21:04:43

Никита?❄️
02.05.2018
21:04:47
не пришлось бы менять код
или ещё что

Ivan
02.05.2018
21:05:12

Никита?❄️
02.05.2018
21:05:31
ну, пока они не в продакшене, такое можно замутить

Ivan
02.05.2018
21:05:40
Но тогда же ещё все функции должны быть саспенд

Ivan
02.05.2018
21:06:21
Нельзя же саспенд функцию вызвать не из саспенд функции
Ну и это меняет семантику же
Всё-таки тред != корутина
Тредлокалы там всякие
Короче какая-то слишком крутая идея, мир, как мне кажется, к такому не готов )

Andrey
02.05.2018
21:14:38
или ещё что
Все уже украдено за нас. Корутины будут в Яве и при этом саспендиться будет безовсяких дополнительных конструкций. В алибабе уже работает это. http://openjdk.java.net/projects/loom/

Никита?❄️
02.05.2018
21:16:12

Bogdan
03.05.2018
03:34:57

Google

Тимур
03.05.2018
06:55:45


Andrey
03.05.2018
07:57:16
В смысле там даже suspend не надо будет писать, можно любую функцию засаспендить?
Могу только сказать как это работает для Алибабы (то как я это понял из доклада) Просто обычный код Java, но кажется в любом месте, он может засуспендиться и потом когда-то продолжить выполнение. У них это все сделано, ради экономии переключения контекстов на процессоре между потоками. Этот доклад у них был на JPointe, но они его потом отдельно представляли и я там его видел.
by involving in Adopt-aJSR
activities and by directly participating in current OpenJDK project, we
commit to contribute to newly launched OpenJDK project loom, actually
our customized OpenJDK version already implemented some similar
mechanism proposed by project loom.
https://www.youtube.com/watch?v=fpyub8fbrVE
На 9-й минуте он говорит, что вот код старый... но с файберми он становиться резко масштабируемым.
И вот после этого я смотрю на JavaScript с его async\await и понимаю, что в яве сделают круче! :)


Igor
03.05.2018
08:05:34
> сделают
Ну может наши внуки норм покодят) (а на android правнуки)

Admin
ERROR: S client not available

Egor
03.05.2018
08:22:00
Только хотел сказать, что на Андроиде итак котлин, как вдруг увидел название чата

Andrew
03.05.2018
08:23:54

Quantum Harmonizer
03.05.2018
08:24:24

Andrew
03.05.2018
08:26:13
так Native же
Я вот глянул с утра страничку об интеропе дарта с сями, а там написано, что инфа устарела, а ссылки на актуальную добавить постеснялись.

Тимур
03.05.2018
08:35:35

Andrey
03.05.2018
09:36:50
Они там не квазар случайно используют?
Название точно не помню. Они взяли какую-то университетскую разработку и занесли ее себе. Почему-то запомнил название loom, возможно в ее основе она же и лежит. Т.е. они не сами все написали.

Boris
03.05.2018
09:41:15
квазар кстати не любой код умеет трансформировать, у него много ограничений, вероятно полностью автоматически перейти на модель корутин с потоков не выйдет и не уверен что это когда-то попадет в релиз джавы

Ivan
03.05.2018
10:44:05
Пажжите, корутины и грин потоки - это же разные вещи. У грин потоков свой шедулер же должен быть
В смысле в котрутинах там просто свитч, а тут какая-то более сильная магия и на уровне рантайма
Или я путаю?

dimiii
03.05.2018
10:46:39

Ivan
03.05.2018
10:46:42

Google

Egor
03.05.2018
11:23:00
а есть таки ktor-юзеры в треде? Подскажет кто, как легко вытащить из call тело запроса? Оно у меня там в джсоне, я его и сам бы спарсил, но не вижу, где в скудной документации ктора про это написано
а-ля,
embeddedServer(Netty, 8080) {
routing {
post ("/") {
call... //Вот здесь хочу вытащить body
}
}
}.start(true)

Like
03.05.2018
11:28:01
там же есть вроде .receive<T>

Egor
03.05.2018
11:35:43
Ага, увидел, спасибо @zdrastepoka
Какая-то неочевидная функция

ZUK
03.05.2018
12:03:59
всем привет, прошу прощения, но я новенький в котлине))
раньше писал под дроид на яве. есть интересные книги или другие источники обучения котлину?)

Александр
03.05.2018
12:05:08

ZUK
03.05.2018
12:05:08
и на счет интеграции явы с котлином. могу ли я в котлин проекте использовать либу на яве?

Александр
03.05.2018
12:05:16

ZUK
03.05.2018
12:05:24
супер

Kirill
03.05.2018
12:05:28

ZUK
03.05.2018
12:05:34

Руслан
03.05.2018
14:42:13
Никто либу не знает чтобы ей скормить class (type), а на выходе получить схему иеархии.
Т.е. на вход:
class A(val b: String)
getDefinition(A::class)
На выходе:
obj: {
fields: {
b: string
}
}

Quantum Harmonizer
03.05.2018
14:43:44
java.lang.reflect?
или UAST

Руслан
03.05.2018
14:46:35
java.lang.reflect?
ну да. но java.lang.reflect мне кажется далеко не все сохраняет (return types/generics?) так что для котлина солюшен нужен. не уверен что все будет работать из коробки.
Хочу сделать автоматические формочки для веба. Типо на беке говоришь что вот эта формочка будет иметь такую схему, а на фронте js'ом генерю форму по описанию класса.