Entiendo que la variable bloqueada por boost::mutex::scoped_lock
se desbloquea automáticamente cuando está fuera del alcance.¿Boost Thread's boost :: unique_lock es un bloqueo de ámbito?
¿Qué tal boost::unique_lock
, desbloquea automáticamente la variable cuando está fuera del alcance?
¿Puede alguien también señalar una referencia para esa función también.
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??? ......
}
Thanks.
Sí, lo es. La documentación está aquí: http://www.boost.org/doc/libs/1_49_0/doc/html/thread/synchronization.html#thread.synchronization.locks.unique_lock –
Si el destructor no lo desbloqueó, ¿cuándo lo haría? alguna vez se desbloquea? –
Es de otra manera redondo. 'boost :: mutex :: scoped_lock' es un typedef de' unique_lock'. http://www.boost.org/doc/libs/1_57_0/doc/html/thread/synchronization.html#thread.synchronization.mutex_types.mutex – balki