Мне было интересно, где было бы лучше спросить о чем-то подобном, поэтому я задал этот вопрос по Meta (https://meta.stackexchange.com/info/304981) и был направлен здесь, поэтому вот оно.
Мне было очень интересно, какие оптимизации были встроены в реализацию критически важных разделов Google с помощью absl::Mutex
(https://github.com/abseil/abseil-cpp/blob/master/absl/synchronization/mutex.h). В частности, мне было интересно, как они обрабатывают пробуждения читателей, когда условие чтения становится истинным. Просыпают ли они всех остальных читателей в списке ожидания? Эта строка, кажется, сигнализирует о том, что они делают. Не рискует ли обход O (n) каждый раз, а также рискует громовыми стадами в записи приоритет мьютекса?