Есть ли смысл делать что-то вроде помещения std::lock_guard
в дополнительную область видимости, чтобы период блокировки был как можно короче?
Псевдокод:
// all used variables beside the lock_guard are created and initialized somewhere else
...// do something
{ // open new scope
std::lock_guard<std::mutex> lock(mut);
shared_var = newValue;
} // close the scope
... // do some other stuff (that might take longer)
Есть ли еще преимущества, кроме короткой продолжительности блокировки?
Какие могут быть негативные побочные эффекты?