This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Add PTHREAD_MUTEX_NORMAL_INT
- From: "Carlos O'Donell" <carlos at redhat dot com>
- To: Andi Kleen <andi at firstfloor dot org>
- Cc: libc-alpha at sourceware dot org, Andi Kleen <ak at linux dot jf dot intel dot com>
- Date: Mon, 24 Jun 2013 16:25:52 -0400
- Subject: Re: [PATCH] Add PTHREAD_MUTEX_NORMAL_INT
- References: <1372105055-31254-1-git-send-email-andi at firstfloor dot org>
On 06/24/2013 04:17 PM, Andi Kleen wrote:
> From: Andi Kleen <ak@linux.intel.com>
>
> Carlos asked for PTHREAD_MUTEX_NORMAL_INT to be added
> to make some of the internal macros be easier to understand.
> It is always identical to DEFAULT, as NORMAL only makes
> a difference for settype.
Thanks for this.
As it stands however, with pthread_mutexattr_gettype loosing
the type originally entered by the user, we are going to have to
propagate the new type internally.
Unless someone sees another way around this?
It's the right solution, we really want to distinguish at both
internal and external that NORMAL is a distinct type with
special semantics.
Cheers,
Carlos.
> 2013-06-24 Andi Kleen <ak@linux.intel.com>
>
> * pthreadP.h (PTHREAD_MUTEX_NORMAL_INT): Add and use
> for PTHREAD_MUTEX_PP_{PI,NORMAL}_NP .
> ---
> nptl/pthreadP.h | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
> index cbf26ca..bfe0ae2 100644
> --- a/nptl/pthreadP.h
> +++ b/nptl/pthreadP.h
> @@ -61,6 +61,12 @@
> enum
> {
> PTHREAD_MUTEX_KIND_MASK_NP = 7,
> +
> + /* NORMAL is the same as default, except it makes settype
> + disable elision. Internally we always treat it the same
> + as DEFAULT. So we use the same value as DEFAULT
> + internally. */
> + PTHREAD_MUTEX_NORMAL_INT = PTHREAD_MUTEX_DEFAULT,
> PTHREAD_MUTEX_ROBUST_NORMAL_NP = 16,
> PTHREAD_MUTEX_ROBUST_RECURSIVE_NP
> = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_RECURSIVE_NP,
> @@ -70,7 +76,7 @@ enum
> = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
> PTHREAD_MUTEX_PRIO_INHERIT_NP = 32,
> PTHREAD_MUTEX_PI_NORMAL_NP
> - = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_DEFAULT,
> + = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_NORMAL_INT,
> PTHREAD_MUTEX_PI_RECURSIVE_NP
> = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_RECURSIVE_NP,
> PTHREAD_MUTEX_PI_ERRORCHECK_NP
> @@ -87,7 +93,7 @@ enum
> = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP,
> PTHREAD_MUTEX_PRIO_PROTECT_NP = 64,
> PTHREAD_MUTEX_PP_NORMAL_NP
> - = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_DEFAULT,
> + = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_NORMAL_INT,
> PTHREAD_MUTEX_PP_RECURSIVE_NP
> = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_RECURSIVE_NP,
> PTHREAD_MUTEX_PP_ERRORCHECK_NP
>