これがバグである場合は、実行しなくても問題ありませんが、これが予想される動作である場合は、その理由を知りたいです。
私はこのようなことをします:
{
boost::lock_guard<boost::mutex> lg(tagsToSocketsMtx);
// mutex protected work
lg.~lock_guard(); // this causes deadlocks later(combined with ...
//...other uses of the same mtx, ofc I use different lock guard in other functions)
// rest of the function
}