
Dmitry
05.07.2018
17:19:19
Предложи как профайлить код в докере. Тут проект 60 тыс строк кода легаси

Maxim
05.07.2018
17:25:55
а чего сложного в gitflow?

Eto
05.07.2018
17:28:11

Google

Maxim
05.07.2018
17:29:07
исихазм, например?)

Oleg
05.07.2018
17:45:51
это как правильно питаться и бегать по утрам)
в целом полезно, наверное, но не всегда будет получаться, а некоторым противопоказан бег может быть и тд

Evil
06.07.2018
03:19:55
Можно ли как-то ушаманить libasync или альтернативный ивентлуп для кастомных ивентов? Т.е. в моем случае я хочу выгребать ивенты из tdlib и асинхронно их раскидывать
Ладно, vibe.core runTask

Ievgenii
06.07.2018
09:56:08

Evil
06.07.2018
09:59:33
А в чем проблема то?
Хочу красиво решить эту задачу. В моей петле while(true) происходит некий read, и если данные получены, нужно выстрелить ими в виде задачи. Хочу не просто насрать тредами, а чтоб было элегантно, как в вайбе.
я пока не до конца понял механизм, как там оно происходит
Изначально думал, что можно обойтись вообще без вайба, чтобы было минималистичней.. но пусть уже будет с ним

Ievgenii
06.07.2018
10:10:18
Смотри, вайб - это простая надстройка над евентлупом
Тебе нужны куратины

Maxim
06.07.2018
10:11:48
так, собственно, вайб по файберам же и раскидывает всё, не?

Google

Evil
06.07.2018
10:11:53
кто нужен?)

Ievgenii
06.07.2018
10:12:09
И асинхронные соккты

Evil
06.07.2018
10:12:18
Я глядел сегодня на libasync, ничего полезного не извлёк
зачем сокеты?
у меня рид не из сокета, а из другого асинхронного лупа внешней библиотеки

Ievgenii
06.07.2018
10:13:42
Ну она как читает?
Из сокета?
Как она асинхронно читает?

Evil
06.07.2018
10:14:00
нет
ща покажу

Eto
06.07.2018
10:15:47

Evil
06.07.2018
10:16:04
receive() относительно асинхронное, по таймауту отваливается

Dark
06.07.2018
10:21:13
У тебя там отступ на 8, что ли?

Evil
06.07.2018
10:21:29
да это с гитхаба диф
git@github.com:Lord-Evil/d-tdlib-service.git
собсно

Ievgenii
06.07.2018
11:20:19
Стой
Кажется ресив не асинхронный
Он блокирующий

Google

Ievgenii
06.07.2018
11:20:35
Как я помню

Evil
06.07.2018
12:03:02
Сделал
он такой
string receive(){
double timeout=1.0;
return fromStringz(td_json_client_receive(_client, timeout));
}

Pavel
06.07.2018
12:04:56

Evil
06.07.2018
12:05:10
короче, рассказываю в чем прикол runTask()
В чистом виде работает без слипа, но если внутри происходят какие-то хитрые операции, как мне кажется, типа чтения из сокета итп., то должна быть некоторая задержка или выход из метода, чтобы процессор мог явно переключить контекст
В общем, кому интересно, я пушнул. На линуксе собирается без вопросов, просто make

Maxim
06.07.2018
12:09:39
да он и так переключить должен

Evil
06.07.2018
12:09:48

Maxim
06.07.2018
12:10:06
стой, мы сейчас про треды говорим системные или про файберы?

Evil
06.07.2018
12:10:20
Подозреваю, что файберы

Evil
06.07.2018
12:10:24
вайбовские
я не знаю из чего они сделаны)

Oleg
06.07.2018
12:10:41
им переключение контекста необходимо явное

Maxim
06.07.2018
12:11:03
ну так файберы — это же кооперативная многозадачность, там нужно явно говорить, когда ты готов отпустить процессор

Evil
06.07.2018
12:11:52
угу, я вот так жопой и допёр до сей сути, чисто интуитивно, т.к. не хватает низкоуровневых знаний.
В прошлом году сочинял smtp сервер, тоже столкнулся с этим, т.к. нужно было по ^C красиво закрыть сокет, а оно не давало

Google

Evil
06.07.2018
12:13:45
так решил
exitEventLoop(); ебошит все сокеты быстрее, чем ты их закрываешь xD
Есть какие либо более адекватные варианты?

Pavel
06.07.2018
12:32:11

Ievgenii
06.07.2018
13:54:24

Pavel
06.07.2018
14:11:15
Ну да, но в вайбе все операции знают
Например там есть специальный таймер асинхронный, если его вызвать то он не блокирует весь поток

Ievgenii
06.07.2018
14:18:14
Если оно подстроенно под фреймворк

Admin
ERROR: S client not available

Ievgenii
06.07.2018
14:18:34
В этом случаи с Вайбом - там все уже в кучке

Evil
06.07.2018
14:26:48
Хмм.. вот жеж блядь, а vibe-core норм так оторвался.. Как-то грустно..

Pavel
06.07.2018
14:29:56
от чего оторвался?

Evil
06.07.2018
14:30:01
Захотел добавить в проект http, а оно не совместимое оказалось, пришлось vibe-core выбрасывать и vibe.d весь собирать..
vibe-core ответвился от 0.7й версии фреймворка и его перелопатили

Pavel
06.07.2018
14:31:00
Да, но vibed последних версий уже на основе vibe-core работает

Evil
06.07.2018
14:31:06
хм
правда?)
ну тогда ладно
я давно ничего не писал на D углублённо

Google

Evil
06.07.2018
14:33:10
вообще, не похоже
кор явно более свежий

Pavel
06.07.2018
14:36:54
Vibe core 27 days)

Evil
06.07.2018
14:38:33
ты по файлам смотри
+ они перешаманили ивентлуп итп. он от eventcore тарахтит

Pavel
06.07.2018
14:39:32
Я и смотрю на log.d
Но лучше посмотреть на зависимости

Evil
06.07.2018
14:40:14
Это к чему?

Denis
06.07.2018
14:42:06
Для разрядки

Evil
06.07.2018
14:42:58
в пень)

Denis
06.07.2018
14:43:53
Тесты CI всё длинее и длинее
Уже минет по 10 собирается вся фигня на каждый чих

Pavel
06.07.2018
14:44:54
Куашники в 2к18 уже себе целые кластерные фермы заказывают для того чтобы тесты гонять

Denis
06.07.2018
14:45:20
у нас купленный на TravisCI аккаунт
был CircleCI но он совсем туп был
девопсы наверно нахреновертили (лень смотреть)

Ievgenii
06.07.2018
14:47:45
)))
Мы на своих раннерах все делаем
Блин