C'è un modo che posso dire std::lock_gaurd
per chiamare try_lock
invece di lock
quando acquisisce il mutex?Utilizzare std :: lock_guard con try_lock
L'unico modo che ho potuto pensare è quello di utilizzare std::adopt_lock
:
if (!_mutex.try_lock())
{
// Handle failure and return from the function
}
std::lock_guard<my_mutex_class> lock(_mutex, std::adopt_lock);
C'è una soluzione integrata per il mio problema piuttosto che l'acquisizione del blocco in modo esplicito e poi dare lock_guard
la responsabilità di rilasciarlo?
Sono abbastanza sicuro che è la soluzione integrata che si sta già utilizzando. – user2079303