🦥Alex Fails
Можно корутины попробовать реализовать на них
Andrei
Корутины эффективнее делаются по-другому. На всех платформах.
Andrei
На винде через нейтив файберы
Andrei
На линуксе ucontext_t
Andrei
На маке 20 строчками на ассемблере.
🦥Alex Fails
Andrei
Ну вся связка. Convertthreadtofiber и switchfiber
🦥Alex Fails
Да, кул вещь
Andrei
Createnewfiber
Andrei
Я писал на прошлой работе полноценную кросплатформенную либу для корутин, совмещенных с ядерной io диспетчеризацией.
🦥Alex Fails
С помощью SwitchToThread можно классно балансировать нагрузку
🦥Alex Fails
Andrei
Нет, но есть проблема :3
Andrei
Короче, считай, что да.
🦥Alex Fails
надо тоже как упрвжнение написать
Andrei
Это упражнение заняло около полугода работы.
🦥Alex Fails
Ого
Ned
а кто мне объяснит, что такое корутин?
Andrei
Хотя в простом варианте на платформу можно написать proof of concept решение
🦥Alex Fails
Ну, можно начать хотя бы с функций с множеством точек входа
🦥Alex Fails
Ned
Andrei
Просто обобщение функций.
Andrei
Когда выполнение функции можно прервать и уступить процессор другой функции.
Andrei
Когда ты используешь треды это делает за тебя тред менеджер ядра.
Andrei
А в кооперативной многозаддачности корутины сами говорят yield
Andrei
Или уходят в io операцию или в специальный sleep
Andrei
И тогда тоже уступают управление.
🦥Alex Fails
Andrei
Преимущество в том, что не нужны никакие громоздкие примитивы синхронизации.
Andrei
В винде можно по-разному делать.
Andrei
Можно через overlappedIO
Andrei
Можно через APC
🦥Alex Fails
О, знаком с этими вещами, правда, не работал
Andrei
В винде очень годно, кстати сделано ядерная диспетчеризация IO
Andrei
Через IOCP
Andrei
В отличие скажем от линукса, где epoll вызывает много вопросов
Andrei
Об это хорошо было по-моему в devnotes у разрабов libev написано. Я в общем на все те же грабли понаступал.
Ned
Andrei
В студии для этого есть прагма
Andrei
#pragma region
Andrei
А и да. В целом тот код можно было сделать стандартными срествами.
Andrei
std::codecvt
🦥Alex Fails
Хотя узнал о ней методом тыка
🦥Alex Fails
В с шарпе есть #region, и я подумал, чтт есть же наверняка в плюсах VS прагма похожая
Andrei
А я познакомился несколько лет назад из исходников drWeb-a
Andrei
Когда работал там.
🦥Alex Fails
И не прогадал
🦥Alex Fails
Ого,круто
🦥Alex Fails
А меня тут касперы хотят хантить
Andrei
Дс2?
Andrei
Ой, всмысле Спб?
🦥Alex Fails
Не, мск
🦥Alex Fails
Это называется "случайно обновил резюме"
Andrei
Тоже хантили из каспера, но мне не нравится антивирусная тема в целом.
🦥Alex Fails
И предложения от интела. Яндекса, самсунга, Pwc 👀
🦥Alex Fails
Яндексовое собеседование я вчера завалил, т.к. забыл😳
🦥Alex Fails
Они мне позвонили в скайп, а я был жутко занят другим
Andrei
Сейм щит. Линкедин завален. Только мне обычно с релокейшном предлагают сразу. Видимо, потому что на английском все заполнил.
🦥Alex Fails
Andrei
Ничего страшного, как по мне. Яндекс так себе контора :/
🦥Alex Fails
Я тоже чтот слышал
🦥Alex Fails
с интелом довольно теплая собеседа получилась
Andrei
А что предлагали?
Andrei
Какое отделение?
Ned
народ, а как заставить qtCreator либо учитывать мой мейкфайл либо компилить с нужными мне параметрами?
🦥Alex Fails
Andrei
Неплохо. А что за реквайрмент скилз туда?
Andrei
Плюсы, лоулевел, directx?
🦥Alex Fails
Плюсы, треды, хплатформ +опц знание апи (дх, гл)
Sergey
returned, lol
🦥Alex Fails
С возвращением!
Sergey
Я вроде тут и не был никогда прост
🦥Alex Fails
Это баг веб-версии
Sergey
В .net конфе запостили ссылку
Sergey
А