[cfe-commits] [PATCH] mutex: unify __mutex_base constructors
Saleem Abdulrasool
compnerd at compnerd.org
Mon Dec 10 08:16:02 PST 2012
On Monday, December 10, 2012, Howard Hinnant wrote:
> On Dec 10, 2012, at 2:50 AM, Saleem Abdulrasool <compnerd at compnerd.org<javascript:;>>
> wrote:
>
> > Use the _LIBCPP_CONSTEXPR macro to allow the preprocessor to determine if
> > constexpr should be applied to the constructor. This is required to
> unify the
> > constructor definition.
> >
> > Unify the constructor declarations, moving the member variable
> initialisation
> > into the initialiser-list. This requires an ugly C-style cast to ensure
> > portability across all implementations.
> PTHREAD_{MUTEX,COND}_INITIALIZER may be
> > an aggregate initialiser, which requires an explicit type conversion for
> the
> > compound literal.
> >
> > http://llvm-reviews.chandlerc.com/D194
> >
> > Files:
> > include/__mutex_base
> >
> > Index: include/__mutex_base
> > ===================================================================
> > --- include/__mutex_base
> > +++ include/__mutex_base
> > @@ -37,13 +37,9 @@
> > pthread_mutex_t __m_;
> >
> > public:
> > - _LIBCPP_INLINE_VISIBILITY
> > -#ifndef _LIBCPP_HAS_NO_CONSTEXPR
> > - constexpr mutex() _NOEXCEPT : __m_(PTHREAD_MUTEX_INITIALIZER) {}
> > -#else
> > - mutex() _NOEXCEPT {__m_ =
> (pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER;}
> > -#endif
> > - ~mutex();
> > + _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR mutex() _NOEXCEPT
> > + : __m_((pthread_mutex_t)PTHREAD_MUTEX_INITIALIZER) {}
> > + ~mutex();
> >
> > private:
> > mutex(const mutex&);// = delete;
> > @@ -303,12 +299,8 @@
> > {
> > pthread_cond_t __cv_;
> > public:
> > - _LIBCPP_INLINE_VISIBILITY
> > -#ifndef _LIBCPP_HAS_NO_CONSTEXPR
> > - constexpr condition_variable() : __cv_(PTHREAD_COND_INITIALIZER) {}
> > -#else
> > - condition_variable() {__cv_ =
> (pthread_cond_t)PTHREAD_COND_INITIALIZER;}
> > -#endif
> > + _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR condition_variable()
> > + : __cv_((pthread_cond_t)PTHREAD_COND_INITIALIZER) {}
> > ~condition_variable();
> >
> > private:
> > <D194.1.patch>_______________________________________________
> > cfe-commits mailing list
> > cfe-commits at cs.uiuc.edu <javascript:;>
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
> Is this change just for stylistic reasons, or is it required to get
> something working?
It is simply a stylistic/cleanup change. There should be no change in
functionality.
> Howard
>
>
--
Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20121210/dff7a2bb/attachment.html>
More information about the cfe-commits
mailing list