оптимизации использует сперва atomic<bool> и если он заблокирован дольше порога то используется mutex от ос. Где можно про это почитать? что-то не найду
Проще всего исходники посмотреть в твоей стандартной либе.
(но не факт, что это поможет, если речь о винде)
https://eli.thegreenplace.net/2018/basics-of-futexes/,
С какой такой радости не поможет? std::mutex обычно хидер-онли и просто в своей IDE ползешь по исходнику и изучаешь.
... и почти наверняка утыкаешься в вызов winapi
Во-первых, там Fast PIMPL - реализация скрыта в исходниках CRT, не header-only. А в CRT - изучайте единственное поле типа _RTL_CRITICAL_SECTION/_SRWLOCK :)
Ну вот и поймешь, какая именно у тебя реализация его.
Так отсутствие поля atomic<bool> в std::mutex ещё не гарантирует отсутствие оптимизации в WinAPI/ pthread (спойлер: она там и есть)
По WinAPI есть дока - называется MSDN.
Ну так мне не надо. И если уж очень припекло, есть ворованные исходники винды
Неизвестно какой версии, так что мало помогут.
А кроме хрюши еще что-то утекало?
Ходят слухи про утечку 7-ки. Да и зачем?
Win2K точно утекала. 7-ка вроде утекала та, которую майки в какие-то универы для "изучения" предоставляют
Утекшая Win2K - это и есть WRK (Windows Research Kernel), но там именно ядро
Win2k это Windows 2000. Был такой до XP
WRK - это не XP
Я не спорю что WRK это не xp. Я говорю что Win2k это не WRK.
Тогда прошу пруф, не помню утечек полной Win2K. "nt5src" - это именно Хрюша
Напомни в понедельник. Попробую архив с сорсами поискать, если не снес.
Хотя вроде вот тот же самый на гите. https://github.com/gameprive/win2k
Короче, предлагаю решить спор так: в std::mutex нет оптимизаций, он тупой и медленный - а смотреть нижележащие примитивы #нинада
Та к и есть же...
Обсуждают сегодня