отобразить?
for(;;) {
if(isDo) {
std::lock_guard<std::mutex> lock(g_mutex, "начинать синхронизировать только если тут тру, в ином случае игнорировать и ничего не синхронизировать")
do();
}
}
А что не так с этим псевдокодом?
if (isDo) { std::lock_guard lock{ g_mutex }; do(); } else { do(); } ?
там ещё есть всякие std::defer_lock
ну можно еще optional<mutex> из лямбды вернуть
о, точно. я обычно для опциональных гвардов делаю std::optional<std::lock_guard>
ну да, optional<lock> конечно
Действительно логично, что-то не подумал, спасибо
повтор кода не ошибка
std::shared_ptr<std::lock_guard<std::mutex>> lock; if (isDo) { lock = std::make_shared<std::lock_guard<std::mutex>>(m_mutex); } do(); )))
Обсуждают сегодня