[cfe-commits] [libcxx] r120258 - in /libcxx/trunk/include: __mutex_base ratio
Howard Hinnant
hhinnant at apple.com
Sun Nov 28 11:41:08 PST 2010
Author: hhinnant
Date: Sun Nov 28 13:41:07 2010
New Revision: 120258
URL: http://llvm.org/viewvc/llvm-project?rev=120258&view=rev
Log:
Minor fixup in <ratio> and add optional support for shared_mutex and upgrade_mutex which must be opted into with #define _LIBCPP_SHARED_LOCK
Modified:
libcxx/trunk/include/__mutex_base
libcxx/trunk/include/ratio
Modified: libcxx/trunk/include/__mutex_base
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/__mutex_base?rev=120258&r1=120257&r2=120258&view=diff
==============================================================================
--- libcxx/trunk/include/__mutex_base (original)
+++ libcxx/trunk/include/__mutex_base Sun Nov 28 13:41:07 2010
@@ -18,6 +18,16 @@
#pragma GCC system_header
+#ifdef _LIBCPP_SHARED_LOCK
+
+namespace ting {
+template <class> class shared_lock;
+template <class> class upgrade_lock;
+}
+
+#endif // _LIBCPP_SHARED_LOCK
+
+
_LIBCPP_BEGIN_NAMESPACE_STD
class _LIBCPP_VISIBLE mutex
@@ -143,6 +153,28 @@
__u.__owns_ = false;
return *this;
}
+
+#ifdef _LIBCPP_SHARED_LOCK
+
+ unique_lock(ting::shared_lock<mutex_type>&&, try_to_lock_t);
+ template <class _Clock, class _Duration>
+ unique_lock(ting::shared_lock<mutex_type>&&,
+ const chrono::time_point<_Clock, _Duration>&);
+ template <class _Rep, class _Period>
+ unique_lock(ting::shared_lock<mutex_type>&&,
+ const chrono::duration<_Rep, _Period>&);
+
+ explicit unique_lock(ting::upgrade_lock<mutex_type>&&);
+ unique_lock(ting::upgrade_lock<mutex_type>&&, try_to_lock_t);
+ template <class _Clock, class _Duration>
+ unique_lock(ting::upgrade_lock<mutex_type>&&,
+ const chrono::time_point<_Clock, _Duration>&);
+ template <class _Rep, class _Period>
+ unique_lock(ting::upgrade_lock<mutex_type>&&,
+ const chrono::duration<_Rep, _Period>&);
+
+#endif // _LIBCPP_SHARED_LOCK
+
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
void lock();
Modified: libcxx/trunk/include/ratio
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ratio?rev=120258&r1=120257&r2=120258&view=diff
==============================================================================
--- libcxx/trunk/include/ratio (original)
+++ libcxx/trunk/include/ratio Sun Nov 28 13:41:07 2010
@@ -276,10 +276,7 @@
template <class _R1, class _R2>
struct _LIBCPP_VISIBLE ratio_multiply
- : public __ratio_multiply<_R1, _R2>::type
-{
- typedef typename __ratio_multiply<_R1, _R2>::type type;
-};
+ : public __ratio_multiply<_R1, _R2>::type {};
template <class _R1, class _R2>
struct __ratio_divide
@@ -297,10 +294,7 @@
template <class _R1, class _R2>
struct _LIBCPP_VISIBLE ratio_divide
- : public __ratio_divide<_R1, _R2>::type
-{
- typedef typename __ratio_divide<_R1, _R2>::type type;
-};
+ : public __ratio_divide<_R1, _R2>::type {};
template <class _R1, class _R2>
struct __ratio_add
@@ -326,10 +320,7 @@
template <class _R1, class _R2>
struct _LIBCPP_VISIBLE ratio_add
- : public __ratio_add<_R1, _R2>::type
-{
- typedef typename __ratio_add<_R1, _R2>::type type;
-};
+ : public __ratio_add<_R1, _R2>::type {};
template <class _R1, class _R2>
struct __ratio_subtract
@@ -355,10 +346,7 @@
template <class _R1, class _R2>
struct _LIBCPP_VISIBLE ratio_subtract
- : public __ratio_subtract<_R1, _R2>::type
-{
- typedef typename __ratio_subtract<_R1, _R2>::type type;
-};
+ : public __ratio_subtract<_R1, _R2>::type {};
// ratio_equal
More information about the cfe-commits
mailing list