mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Add new internal mutex type flags for elision.
Add Enable/disable flags used internally Extend the mutex initializers to have the fields needed for elision. The layout stays the same, and this is not visible to programs. These changes are not exposed outside pthread
This commit is contained in:
@ -61,6 +61,10 @@
|
||||
enum
|
||||
{
|
||||
PTHREAD_MUTEX_KIND_MASK_NP = 3,
|
||||
|
||||
PTHREAD_MUTEX_ELISION_NP = 256,
|
||||
PTHREAD_MUTEX_NO_ELISION_NP = 512,
|
||||
|
||||
PTHREAD_MUTEX_ROBUST_NORMAL_NP = 16,
|
||||
PTHREAD_MUTEX_ROBUST_RECURSIVE_NP
|
||||
= PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_RECURSIVE_NP,
|
||||
@ -93,12 +97,21 @@ enum
|
||||
PTHREAD_MUTEX_PP_ERRORCHECK_NP
|
||||
= PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
|
||||
PTHREAD_MUTEX_PP_ADAPTIVE_NP
|
||||
= PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ADAPTIVE_NP
|
||||
= PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
|
||||
PTHREAD_MUTEX_ELISION_FLAGS_NP
|
||||
= PTHREAD_MUTEX_ELISION_NP | PTHREAD_MUTEX_NO_ELISION_NP,
|
||||
|
||||
PTHREAD_MUTEX_TIMED_ELISION_NP =
|
||||
PTHREAD_MUTEX_TIMED_NP | PTHREAD_MUTEX_ELISION_NP,
|
||||
PTHREAD_MUTEX_TIMED_NO_ELISION_NP =
|
||||
PTHREAD_MUTEX_TIMED_NP | PTHREAD_MUTEX_NO_ELISION_NP,
|
||||
};
|
||||
#define PTHREAD_MUTEX_PSHARED_BIT 128
|
||||
|
||||
#define PTHREAD_MUTEX_TYPE(m) \
|
||||
((m)->__data.__kind & 127)
|
||||
#define PTHREAD_MUTEX_TYPE_ELISION(m) \
|
||||
((m)->__data.__kind & (127|PTHREAD_MUTEX_ELISION_FLAGS_NP))
|
||||
|
||||
#if LLL_PRIVATE == 0 && LLL_SHARED == 128
|
||||
# define PTHREAD_MUTEX_PSHARED(m) \
|
||||
|
Reference in New Issue
Block a user