Я понимаю, что переменная, заблокированная boost::mutex::scoped_lock
, автоматически разблокируется, когда она выходит за рамки.
Как насчет boost::unique_lock
, он автоматически разблокирует переменную, когда она выходит за пределы области видимости?
Можно ли также указать ссылку на эту функцию.
double x;
boost::mutex x_mutex;
void foo()
{
{
boost::unique_lock<boost::mutex> lock(x_mutex);
x = rand();
}
...... some calculation which takes 10 second ......
...... is x still locked here??? ......
}
Спасибо.