次のブログ投稿:
次のように定義された「プッシュ」メソッドがあります。
void push(Data const& data)
{
boost::mutex::scoped_lock lock(the_mutex);
the_queue.push(data);
lock.unlock();
the_condition_variable.notify_one();
}
私の質問は次のとおりです。
scoped_lock変数に対して明示的な「lock.unlock()」が呼び出されるのはなぜですか?
その目的は何ですか?
安全に削除して、'notify_one'メソッド呼び出しをscoped_mutexのスコープ内に収めることができますか?