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