Do a bytewise comparison of the two places, using relaxed atomic reads. This is used to check if
a synchronization primitive matches its static initializer value.
Translates the clock from what is stored in pthread_condattr_t to our enum.
Eagerly create and initialize a new mutex.
Returns the mutex data stored at the address that mutex_ptr
points to.
Will raise an error if the mutex has been moved since its first use.
To ensure an initialized mutex that was moved somewhere else can be distinguished from
a statically initialized mutex that is used the first time, we pick some offset within
pthread_mutex_t
and use it as an βinitializedβ flag.
Returns the kind of a static initializer.
Translates the mutex kind from what is stored in pthread_mutexattr_t to our enum.