This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add PTHREAD_MUTEX_NORMAL_INT


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
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]