* include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 24 Jul 2015 16:30:04 +0000 (17:30 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 24 Jul 2015 16:30:04 +0000 (17:30 +0100)
(_M_load_and_test_until): Whitespace.
(_M_load_and_test): Value-initialize the unused durations.
(_M_load_when_equal): Add missing return value.

From-SVN: r226174

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/atomic_futex.h

index 0d3eb25..d7dbedd 100644 (file)
@@ -1,3 +1,10 @@
+2015-07-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
+       (_M_load_and_test_until): Whitespace.
+       (_M_load_and_test): Value-initialize the unused durations.
+       (_M_load_when_equal): Add missing return value.
+
 2015-07-24  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
 
        * fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
index ca3260d..90317f2 100644 (file)
@@ -93,15 +93,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       for (;;)
        {
-         // Don't bother checking the value again because we expect the caller to
-         // have done it recently.
+         // Don't bother checking the value again because we expect the caller
+         // to have done it recently.
          // memory_order_relaxed is sufficient because we can rely on just the
          // modification order (store_notify uses an atomic RMW operation too),
          // and the futex syscalls synchronize between themselves.
          _M_data.fetch_or(_Waiter_bit, memory_order_relaxed);
-         bool __ret;
-         __ret = _M_futex_wait_until((unsigned*)(void*)&_M_data,
-             __assumed | _Waiter_bit, __has_timeout, __s, __ns);
+         bool __ret = _M_futex_wait_until((unsigned*)(void*)&_M_data,
+                                          __assumed | _Waiter_bit,
+                                          __has_timeout, __s, __ns);
          // Fetch the current value after waiting (clears _Waiter_bit).
          __assumed = _M_load(__mo);
          if (!__ret || ((__operand == __assumed) == __equal))
@@ -119,7 +119,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
        bool __equal, memory_order __mo)
     {
       return _M_load_and_test_until(__assumed, __operand, __equal, __mo,
-         false, chrono::seconds(0), chrono::nanoseconds(0));
+                                   false, {}, {});
     }
 
     // If a timeout occurs, returns a current value after the timeout;
@@ -146,7 +146,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     _M_load_when_not_equal(unsigned __val, memory_order __mo)
     {
       unsigned __i = _M_load(__mo);
-      if ((__i & ~_Waiter_bit) != __val) return;
+      if ((__i & ~_Waiter_bit) != __val)
+       return (__i & ~_Waiter_bit);
       // TODO Spin-wait first.
       return _M_load_and_test(__i, __val, false, __mo);
     }