Get the latest tech news
Without the futex, it's futile
Review: It's a history text, not a CS text
It becomes much easier to avoid unnecessary delays (like sleeps with exponential backoffs) and bottlenecks, particularly system calls themselves, which are quite expensive compared to most of the code involved in locking. 🏃🏿♂️While many algorithms can work with much weaker consistency guarantees, we will generally avoid memory ordering optimization because it's so error prone, and often doesn't really make a significant difference for real-world programs. But in a multi-threaded app, if we don’t allow nested locks, we now also have to anticipate every situation where it might make sense for a list to be passed multiple times, and then add code to explicitly test for it.
Or read this on Hacker News