Информация об изменениях

Сообщение Re[2]: внутренняя реализация std::mutex? от 17.05.2018 10:02

Изменено 17.05.2018 10:03 lpd

Re[2]: внутренняя реализация std::mutex?
Здравствуйте, barney, Вы писали:

B>Вот "INSIDE_THE_LOCK:SPINNER:•2W•"

B>здесь должно быть "INSIDE_THE_LOCK:2" или "INSIDE_THE_LOCK: ••2" но SPINNER должен был вывестись ПОСЛЕ

Лучше пиши в std::cerr, т.к. std::cout вообще буферизуется, хотя отладить так все равно нельзя.

Для отладки mutex можно сделать глобальную переменную int counter, и инкрементировать ее заданное число раз из разных потоков.
Без синхронизации или с неправильным мьютексом значение counter в конце почти всегда будет меньше, чем должно.
Re[2]: внутренняя реализация std::mutex?
Здравствуйте, barney, Вы писали:

B>Вот "INSIDE_THE_LOCK:SPINNER:•2W•"

B>здесь должно быть "INSIDE_THE_LOCK:2" или "INSIDE_THE_LOCK: ••2" но SPINNER должен был вывестись ПОСЛЕ

Лучше пиши в std::cerr, т.к. std::cout вообще буферизуется, хотя отладить так все равно нельзя.

Для отладки spinlock можно сделать глобальную переменную int counter, и инкрементировать ее заданное число раз из разных потоков.
Без синхронизации или с неправильным мьютексом значение counter в конце почти всегда будет меньше, чем должно.