Title: [188117] trunk/Source/WTF
Revision
188117
Author
fpi...@apple.com
Date
2015-08-06 23:17:25 -0700 (Thu, 06 Aug 2015)

Log Message

Unreviewed, work around assertions in Windows's std::atomic.

* wtf/Atomics.h:
(WTF::Atomic::compareExchangeWeak):
(WTF::Atomic::compareExchangeStrong):

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (188116 => 188117)


--- trunk/Source/WTF/ChangeLog	2015-08-07 05:15:11 UTC (rev 188116)
+++ trunk/Source/WTF/ChangeLog	2015-08-07 06:17:25 UTC (rev 188117)
@@ -1,3 +1,11 @@
+2015-08-06  Filip Pizlo  <fpi...@apple.com>
+
+        Unreviewed, work around assertions in Windows's std::atomic.
+
+        * wtf/Atomics.h:
+        (WTF::Atomic::compareExchangeWeak):
+        (WTF::Atomic::compareExchangeStrong):
+
 2015-08-05  Filip Pizlo  <fpi...@apple.com>
 
         Lightweight locks should be adaptive

Modified: trunk/Source/WTF/wtf/Atomics.h (188116 => 188117)


--- trunk/Source/WTF/wtf/Atomics.h	2015-08-07 05:15:11 UTC (rev 188116)
+++ trunk/Source/WTF/wtf/Atomics.h	2015-08-07 06:17:25 UTC (rev 188117)
@@ -91,12 +91,21 @@
 
     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);
     }
 
     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);
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to