I have seen a lot of examples of code when developer uses std::unique_lock
in new scope for automatically unlocking mutex:
...
// do some staff
{
std::unique_lock<std::mutex> lock(shared_resource_mutex);
// do some actions with shared resource
}
// do some staff
...
In my opinion it would be better to implement this behaviour using method unlock
from std::unique_lock
API in this way:
...
// do some actions
std::unique_lock<std::mutex> lock(shared_resourse_mutex);
// do some actions with shared resource
lock.unlock();
// do some actions
...
Are these two fragments of code equivalent? For what purpose developers use the first variant? Maybe to emphasize (using parentheses) code that can not be executed parallel?
Aucun commentaire:
Enregistrer un commentaire