J'essaie d'utiliser à la fois timed_mutex et scoped_lock. J'ai réussi à utiliser le scoped_lock avant de suivre quelques exemples, mais maintenant je ne trouve pas mon chemin ni je suis capable de bien comprendre la documentation de boost.Comment utiliser correctement boost :: timed_mutex et scoped_lock
Le comportement souhaité est le suivant: essayez d'acquérir un verrou scoped_lock pour x fois, en cas de succès, renvoyez true sinon sinon false.
Actuellement, j'ai:
boost::timed_mutex _mutex;
boost::timed_mutex::scoped_lock scoped_lock(_mutex, boost::get_system_time() + boost::posix_time::miliseconds(10));
Cependant lorsque je tente de trouver (grâce à la documentation de poussée ou des exemples) si cette scoped_lock retourne une valeur booléenne ou non, je ne trouve rien ou trouver des moyens vraiment différentes de le faire.
Par conséquent, je demande quelle est la bonne façon de le faire, comment cela fonctionne exactement et peut-être une indication quant à la façon de "lire" correctement la documentation de boost.
MISE À JOUR:
Alors
boost::timed_mutex _mutex;
boost::timed_mutex::scoped_lock scoped_lock(_mutex, boost::get_system_time() + boost::posix_time::miliseconds(10));
if(scoped_lock.owns_lock()) {
// exclusive code
}
va créer un mutex qui lorsque je tente de verrouiller avec scoped_lock.owns_lock() va essayer d'acquérir le verrou pendant 10 millisecondes (dans ce cas) et le retour faux si le temps est écoulé et que le verrou n'a pas été acquis?
Cette question peut vous aider: http://stackoverflow.com/questions/14200305/usage-of-boostunique-locktimed-lock –