Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not if you have multiple schedulers. Case in point: asio.strand or execution::on [1].

And even with one scheduler it makes sense to explicitly mark your critical sections.

Really, at the end of the day the primary purpose of a mutex is serialization of all operations on some data. The blocking behaviour is just a way to implement it.

[1] https://en.cppreference.com/w/cpp/execution/on.html



Mutexes are a problematic pattern that doesn't compose, see the article.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: