Forced locking/releasing seems like unnecessary overhead (std::condition_variable::wait)
The std::condition_variable::wait
function requires a locked mutex as an argument. Example:
The std::condition_variable::wait
function requires a locked mutex as an argument. Example: