On Wed, Apr 19, 2023 at 4:17 PM Noah Goldstein via Libc-alpha < libc-alpha@sourceware.org> wrote: > On Tue, Apr 18, 2023 at 4:37 PM H.J. Lu via Libc-alpha > wrote: > > i.e > Futex = O(10^4) cycles > Spin = O(10^2) cycles > > TIMED_NP Short Critical Section uses Futex: O(10^4) Cycles > TIMED_NP Long Critical Section uses futex: O(10^4) Cycles > > > ADAPTIVE_NP Short Critical Section uses spin: O(10^2) Cycles > ADAPTIVE_NP Long Critical Section uses spin + futex: O(10^2) + O(10^4) > = O(10^4) Cycles > > > If this is indeed the case.. Why is it not the default.. ? A quick read of docs says PTHREAD_MUTEX_INITIALIZER and PTHREAD_MUTEX_NORMAL are up to the implementation to choose..