@ProCxx

Страница 113 из 2477
Andrei
20.04.2016
21:22:15
Задавай вопросы без эмоций, получишь ответ без эмоций.

Penter
20.04.2016
21:25:27
Кривая как винда ME

Andrei
20.04.2016
21:25:45
Когда задают вопрос "почему этот вот код выводит это?", я смотрю в код и если он действительно выводит, то что вывел, я спрашиваю "а что должен если не это?" И хотя я понимаю, что вопрос был в том на самом деле "как работает этот код", я предпочитаю чтобы человек высказал своё предположение, потому что так быстрее найти изъян в его понимании, чем объяснять все целиком.

Google
Andrei
20.04.2016
21:26:09
Есть же уже
Когда мне было надо (4 года назад) не было.

Penter
20.04.2016
21:26:24
Andrei
20.04.2016
21:26:28
Взял никсовую какую-то либу и переписал для винды.

Penter
20.04.2016
21:26:28
И всегда был говном

Но

НАХУЯ

ФАСТСГИ ПОД ВИНДОЙ?

Andrei
20.04.2016
21:27:08
Что тебя смущает?

@PenterProKaos ?

Сергей
20.04.2016
21:31:01
Я вот на плюсах пишу проект для эмбедедда, где дорогие исклбчения, так я просто свой Expected<T> написал.
Я читал про собственную реализацию исключений, все показалось довольно сложным. Что делал этот expect в общем?

Andrei
20.04.2016
21:31:17
Хаскелль знаешь?

Сергей
20.04.2016
21:32:03
Нет

Google
Penter
20.04.2016
21:32:46
Не Expected

А Exception

Если ты имел ввиду свой класс для неожиданных случаев

Andrei
20.04.2016
21:33:16
Нет. Я про expected

Как замену исключениям.

Penter
20.04.2016
21:34:25
Бля

Ну

Класс исключения?

Или что?

Andrei
20.04.2016
21:34:49
Короче, Сергей. Expected это обертка над возвращаемым значением, которая хранит либо его либо ошибку. В виде стринга или std::exception_ptr.

У неё как у монад есть биндеры

Биндер в который передается функтор от типа возвращаемого значения

Который вызывается в случае успеха

Или fail

В который передается ошибка

Понятно что такая штука как бы "заражает" все возвращаемые значения.

Поэтому там где уже обычный код мы руками можем чекнуть у expected-a в каком он состоянии и вызвать get или geterror

Собственно все.

Сергей
20.04.2016
21:37:05
Хм

Andrei
20.04.2016
21:37:14
Вместо throw у нас оьычный return

Google
Сергей
20.04.2016
21:37:19
Ага

Клево

Andrei
20.04.2016
21:37:28
Только в этот ретёрн конструируется спецобъект

И плюс там шаблонная магия позволяет делать ретёрн ожидаемого типа без приведения

То есть функция которая возвращала инт, стала возвращать Expected<int, std::string> например, но внутри тела все равно return 2; можно оставить.

Очень ускорило работу.

Бтв. Во многих языках именно такой механизм

Например в хаскеле монадический трансформер maybeT

Или в Rust

Там тоже нет исклбчений

И они имено в виде expectation-ов возвращаются.

Вот ссылка на пропозал о добавлении в стандарт плюсов этого класса

Andrei
20.04.2016
21:41:38
https://isocpp.org/files/papers/n4015.pdf

Кстати реализация Александреску норм, но мне не очень. Я бы делал более функциональную и менее тяжелую для эмбеддеда.

Square
21.04.2016
00:52:47
Во вы злые.

Че у нас можно из подкастов про разработку послушать, только не для новичков. I tunes u чухню предлагает

Хочу вдохновиться каким нить свежим архитектурным познанием

Admin
ERROR: S client not available

Square
21.04.2016
00:56:20
Не могу придумать толковый обмен данными между потоками. Нужно чтоб прям blazingly fast

Google
Square
21.04.2016
00:56:50
Минимум реаллоков :( локфри

Текущая реализация уныловата

arisu
21.04.2016
00:57:33
очереди сообщений

Square
21.04.2016
00:57:56
Zeromq? Медленно

У меня обмен указателями через локфри очередь

У выталкивающего потока на выходе буфер статический,читающие потоки по указателям собирают свои данные из буфера соседа. Вот колхоз вокруг этого буфера мне не нравится. Приходится следить чтобы читающий не догонял пишущего

Если навешивать сюда диспетчеризацию - скорость падает

Andrei
21.04.2016
01:17:44
Сколько чтецов?

Ридрайт мутех

Square
21.04.2016
01:27:36
Чтецов как правило 1-2 но может быть больше. Зависит от сценария

Ридрайт мутех
Поток в свой буфер пишет под мютексом

И перед тем как забрать данные читающий проверяет позицию пишущего

Это через атомик

В грубом приближении так

Вызодной буфер потока зациклен и поделён на 3 части...

Andrei
21.04.2016
01:29:37
Можешь локфри сделать

Перед и после буфера каунтер

Square
21.04.2016
01:29:51
Если вдруг оверфлоу, треть очищается. Если не успевает

В принципе скорость сейчас весьма не маленькая, но хочется ещё выжать

Google
Square
21.04.2016
01:32:21
Я б даже сказал что ядро системы чертовски быстрое и проблема уже в конкретных плагинах

К тому же отладка собственного локфри та ещё гыма. А в том же relacy разбираться и разбираться

$continue$
21.04.2016
07:12:16
Сейчас бы в 2016 под венду покодить.

ivario
21.04.2016
07:31:24
турбоси рулит
Пожалуй, нет

Страница 113 из 2477