Title: [206468] trunk/Source/WTF
Revision
206468
Author
[email protected]
Date
2016-09-27 16:20:56 -0700 (Tue, 27 Sep 2016)

Log Message

Atomics.h on Windows: remove seq_cst hack
https://bugs.webkit.org/show_bug.cgi?id=162022

Reviewed by Mark Lam.

No need to force access to seq_cst, always inlining fixes the MSVC warning.

* wtf/Atomics.h:
(WTF::Atomic::compareExchangeWeak): remove seq_cst hack
(WTF::Atomic::compareExchangeStrong): remove seq_cst hack
(WTF::Atomic::exchangeAndAdd): remove seq_cst hack
(WTF::Atomic::exchange): remove seq_cst hack

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (206467 => 206468)


--- trunk/Source/WTF/ChangeLog	2016-09-27 22:17:45 UTC (rev 206467)
+++ trunk/Source/WTF/ChangeLog	2016-09-27 23:20:56 UTC (rev 206468)
@@ -1,3 +1,18 @@
+2016-09-27  JF Bastien  <[email protected]>
+
+        Atomics.h on Windows: remove seq_cst hack
+        https://bugs.webkit.org/show_bug.cgi?id=162022
+
+        Reviewed by Mark Lam.
+
+        No need to force access to seq_cst, always inlining fixes the MSVC warning.
+
+        * wtf/Atomics.h:
+        (WTF::Atomic::compareExchangeWeak): remove seq_cst hack
+        (WTF::Atomic::compareExchangeStrong): remove seq_cst hack
+        (WTF::Atomic::exchangeAndAdd): remove seq_cst hack
+        (WTF::Atomic::exchange): remove seq_cst hack
+
 2016-09-27  Don Olmstead  <[email protected]>
 
         [CMake] Use CMake to determine HAVE_* defines

Modified: trunk/Source/WTF/wtf/Atomics.h (206467 => 206468)


--- trunk/Source/WTF/wtf/Atomics.h	2016-09-27 22:17:45 UTC (rev 206467)
+++ trunk/Source/WTF/wtf/Atomics.h	2016-09-27 23:20:56 UTC (rev 206468)
@@ -58,11 +58,6 @@
 
     ALWAYS_INLINE bool compareExchangeWeak(T expected, T desired, std::memory_order order = std::memory_order_seq_cst)
     {
-#if OS(WINDOWS)
-        // Windows makes strange assertions about the argument to compare_exchange_weak, and anyway,
-        // Windows is X86 so seq_cst is cheap.
-        order = std::memory_order_seq_cst;
-#endif
         T expectedOrActual = expected;
         return value.compare_exchange_weak(expectedOrActual, desired, order);
     }
@@ -69,12 +64,6 @@
 
     ALWAYS_INLINE bool compareExchangeWeak(T expected, T desired, std::memory_order order_success, std::memory_order order_failure)
     {
-#if OS(WINDOWS)
-        // Windows makes strange assertions about the argument to compare_exchange_weak, and anyway,
-        // Windows is X86 so seq_cst is cheap.
-        order_success = std::memory_order_seq_cst;
-        order_failure = std::memory_order_seq_cst;
-#endif
         T expectedOrActual = expected;
         return value.compare_exchange_weak(expectedOrActual, desired, order_success, order_failure);
     }
@@ -81,10 +70,6 @@
 
     ALWAYS_INLINE bool compareExchangeStrong(T expected, T desired, std::memory_order order = std::memory_order_seq_cst)
     {
-#if OS(WINDOWS)
-        // See above.
-        order = std::memory_order_seq_cst;
-#endif
         T expectedOrActual = expected;
         return value.compare_exchange_strong(expectedOrActual, desired, order);
     }
@@ -91,33 +76,14 @@
 
     ALWAYS_INLINE bool compareExchangeStrong(T expected, T desired, std::memory_order order_success, std::memory_order order_failure)
     {
-#if OS(WINDOWS)
-        // See above.
-        order_success = std::memory_order_seq_cst;
-        order_failure = std::memory_order_seq_cst;
-#endif
         T expectedOrActual = expected;
         return value.compare_exchange_strong(expectedOrActual, desired, order_success, order_failure);
     }
 
     template<typename U>
-    ALWAYS_INLINE T exchangeAndAdd(U addend, std::memory_order order = std::memory_order_seq_cst)
-    {
-#if OS(WINDOWS)
-        // See above.
-        order = std::memory_order_seq_cst;
-#endif
-        return value.fetch_add(addend, order);
-    }
+    ALWAYS_INLINE T exchangeAndAdd(U addend, std::memory_order order = std::memory_order_seq_cst) { return value.fetch_add(addend, order); }
     
-    ALWAYS_INLINE T exchange(T newValue, std::memory_order order = std::memory_order_seq_cst)
-    {
-#if OS(WINDOWS)
-        // See above.
-        order = std::memory_order_seq_cst;
-#endif
-        return value.exchange(newValue, order);
-    }
+    ALWAYS_INLINE T exchange(T newValue, std::memory_order order = std::memory_order_seq_cst) { return value.exchange(newValue, order); }
 
     std::atomic<T> value;
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to