Bohdan
воид ничего не должна возвращать
Bohdan
управление
Fo
А, это очередной UB небось, видимо не сохраняет в регистрах информацию о точке возврата
RattenKong 🦧🐀🦍️
значит, вовзращает дефолтное значение возвращемего типа, либо компилятор нафиг пошлет
MrSmith
Да я понял. Ну а если, noreturn, можно для валенков что значит не возвращается туда откуда вызвали, ну просто я не понимаю как можно вызвать функцию и не возвращаться. exit() жи вроде siscall
MrSmith
Простите не удержался
Konstantin
Боже, как годно :D
MrSmith
ппц ты поехавшый
Вот не надо тут. Я хоть GCC не некрофилю)
Deleted Account
Evgenii
Вот не надо тут. Я хоть GCC не некрофилю)
некрофилия это третья версия😂
Paul
Всем привет. Не могу найти книгу Страуступа - Язык программирования С++ 2013 года на русском. Ни у кого нет? Или посоветуйте что-то из Страуступа охватывающее последний стандарт языка
Evgenii
у него ж одна книга, не?
Paul
Книгографией его не интересовался. В общем, смысл в том, что я лет 7 назад изучал плюсцы довольно долгое время. Сейчас мне надо это все освежить и от кого ж это делать, как не от создателя
Berkus
Или system("reboot")
эта функция возвращается и возвращает значение
Mikhail
Возвращаясь к теме - http://stackoverflow.com/questions/44030776/how-to-calculate-thread-sleeping-time-between-context-switch#comment75088505_44030776
Berkus
reboot случится не сразу и когда (если) он случится твой процесс убьют SIGTERM
Mikhail
Как устроен sleep и wait condition variable. Отжирают ли они процессорные время и пробуждаются ли они планировщиком?
Berkus
стек чистить не надо, эпилог не надо, и т.д.
Berkus
condition variable делает sleep (точнее wait) пока ее не разбудят
Mikhail
sleep так называется потому что он СПИТ
а как он понимает когда нужно проснуться? Т.е. у планировщика таймаут выставляется какой то?
Fo
Как устроен sleep и wait condition variable. Отжирают ли они процессорные время и пробуждаются ли они планировщиком?
Кратко - отжирают. Там по-идее делается while() некоторое время, и если блокировка слишком долгая - то уже засыпает поток.
MrSmith
у него ж одна книга, не?
Не у него их много, мне больше всего эволюция языка нравиться
Mikhail
notify
это понятно. Я имеюю ввиду каким образом просыпается поток на уровне ОС.
Berkus
это понятно. Я имеюю ввиду каким образом просыпается поток на уровне ОС.
перемещается из очереди blocked в очередь ready, очевидно
Mikhail
Кратко - отжирают. Там по-идее делается while() некоторое время, и если блокировка слишком долгая - то уже засыпает поток.
А порядок какой? Стоит ли это учитывать, если у тебя 1000 потоков, 980 из которых в wait или sleep?
Fo
А порядок какой? Стоит ли это учитывать, если у тебя 1000 потоков, 980 из которых в wait или sleep?
Я не думаю, что кроме как тестированием, можно догадаться. Планировщики очень разные бывают и еще и ведут себя адаптивно.
Fo
А почему не всякие аналоги вроде горутин?
Berkus
А порядок какой? Стоит ли это учитывать, если у тебя 1000 потоков, 980 из которых в wait или sleep?
https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=7 возможно тебе надо просто взять руссиновича и почитать
Mikhail
Я не думаю, что кроме как тестированием, можно догадаться. Планировщики очень разные бывают и еще и ведут себя адаптивно.
Ага, понял. Планировщик виндовый. Но да, наверное это только эмпирически можно выяснить
Mikhail
А почему не всякие аналоги вроде горутин?
Потому что так работает кусок дерьма в котором мне приходиться разбираться :)
Fo
Потому что так работает кусок дерьма в котором мне приходиться разбираться :)
Оберни функции создания потоков в свои и менеджи как тебе нравится
Fo
Всеравно если число потоков сильно больше количества ядер то уже даже компенсация оверхеда на кешмиссы не повысит производительность
Mikhail
Fo
я бы с радостью, но тут никто на это не пойдет
Так, а зачем тогда всё это измерять?
Mikhail
Так, а зачем тогда всё это измерять?
ну есть проблема, которая проявляется раз в сутки и выглядит так, как будто один поток засыпает на дольше чем нужно
Mikhail
примерно раз в сутки
Mikhail
ну и я пытаюсь выяснить в чем проблема и понять, может ли это действительно быть связано с долгим простоем потока
Mikhail
или проблема в чем то другом
Fo
Ну если раз в сутки то не)) сильно сомневаюсь
Berkus
может там слип криво считается где-нибудь в районе 12:00
Mikhail
примерно раз в сутки
Mikhail
может и пять раз в сутки
Mikhail
а может и ни одного
Mikhail
выглядит так, как будто поток пока спит накапливает сообщения а потом выталкивает их все за раз
Mikhail
в то время как в остальное время он равномерно их выталкивает
Andrei
Кто-нибудь знает что-то про контору mapbox?
Andrei
Дважды пользовался проектами из их репы и мне очень нравится.
Александр
Вопрос: как красиво вытащить параметр-пак аргументов вариадик-лямбды? В наличии boost::hana, c++17 Не std::function, не указатель на функцию. Именно лямбда.
Berkus
Кто-нибудь знает что-то про контору mapbox?
нет, но jni.hpp их я с большой радостью использую ибо он охуенен
Александр
[](args...) { } ? args вроде и есть параметр пак
Не, я лямбду передал уже в функцию, принимающую F&& f
Александр
В наличии template <class F> void foo(F&& f) Передаю лямбду, нужно вытащить пак параметров
Berkus
а decltype что дает?
Александр
Жесть какую-нибудь, уникальный тип лямбды
Александр
Я так понимаю, есть костыль с определением типов аргументов оператора ()
Александр
Хочется что-то попроще
Oleksandr
"Выводит ожидаемый тип"
Oleksandr
а decltype что дает?