История изменений
Исправление quiet_readonly, (текущая версия) :
Просто замени spinlock на комбинацию spinlock и системного mutex (например, от pthread). Комбинированный mutex на вызове lock сначала N раз пытается залочить spinlock, а в случае неудачи уходит в ожидание системного mutex. Так работает std::mutex (по крайней мере в реализации от Microsoft).
Исходная версия quiet_readonly, :
Просто замени spinlock на комбинацию spinlock и системного mutex (например, от pthread). Комбинированный mutex на вызове lock сначала N раз пытается залочить spinlock, а в случае неудачи уходить в ожидание системного mutex. Так работает std::mutex (по крайней мере в реализации от Microsoft).