Est de Stimuler Fil du boost::unique_lock une étendue de serrure?

Je comprends que variable verrouillée par un boost::mutex::scoped_lock est automatiquement déverrouillé lorsqu'il est hors de portée.

Comment sur boost::unique_lock, le fait automatiquement déverrouiller la variable lorsqu'il est hors de portée?

Quelqu'un peut-il également de point de référence pour cette fonctionnalité.

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??? ......    
}

Grâce.

Oui, il est. La documentation est ici: boost.org/doc/libs/1_49_0/doc/html/thread/...
Si le destructeur n'a pas le déverrouiller, quand serait-il jamais être débloqué?
Ses dans le cas contraire ronde. boost::mutex::scoped_lock est un typedef de unique_lock. boost.org/doc/libs/1_57_0/doc/html/thread/...

OriginalL'auteur 2607 | 2012-02-29