Title: [189151] trunk/Source/WTF
- Revision
- 189151
- Author
- [email protected]
- Date
- 2015-08-29 08:59:13 -0700 (Sat, 29 Aug 2015)
Log Message
[WTF] Improve a ParkingLot::parkConditionally() comment for a libstdc++ workaround
https://bugs.webkit.org/show_bug.cgi?id=148571
Reviewed by Filip Pizlo.
* wtf/ParkingLot.cpp:
(WTF::ParkingLot::parkConditionally): Adjust the comment about the workaround for
the libstdc++ std::condition_variable implementation, linking to the WebKit bug
that dissected the problem and the GCC bug that originally reported the problem.
Modified Paths
Diff
Modified: trunk/Source/WTF/ChangeLog (189150 => 189151)
--- trunk/Source/WTF/ChangeLog 2015-08-29 15:50:37 UTC (rev 189150)
+++ trunk/Source/WTF/ChangeLog 2015-08-29 15:59:13 UTC (rev 189151)
@@ -1,3 +1,15 @@
+2015-08-29 Zan Dobersek <[email protected]>
+
+ [WTF] Improve a ParkingLot::parkConditionally() comment for a libstdc++ workaround
+ https://bugs.webkit.org/show_bug.cgi?id=148571
+
+ Reviewed by Filip Pizlo.
+
+ * wtf/ParkingLot.cpp:
+ (WTF::ParkingLot::parkConditionally): Adjust the comment about the workaround for
+ the libstdc++ std::condition_variable implementation, linking to the WebKit bug
+ that dissected the problem and the GCC bug that originally reported the problem.
+
2015-08-28 Anders Carlsson <[email protected]>
Remove the #if PLATFORM(MAC) in DeprecatedSymbolsUsedBySafari.mm so we'll actually build it on iOS.
Modified: trunk/Source/WTF/wtf/ParkingLot.cpp (189150 => 189151)
--- trunk/Source/WTF/wtf/ParkingLot.cpp 2015-08-29 15:50:37 UTC (rev 189150)
+++ trunk/Source/WTF/wtf/ParkingLot.cpp 2015-08-29 15:59:13 UTC (rev 189151)
@@ -540,9 +540,9 @@
{
std::unique_lock<std::mutex> locker(me->parkingLock);
while (me->address && Clock::now() < timeout) {
- // This is pretty funny. On Linux, if you wait until the max time, it immediately reports that you timed
- // out. What's particularly bad about this is that it never releases the lock in that case. So, you loop
- // forever without yielding to the thread that would wake you up.
+ // Falling back to wait() works around a bug in libstdc++ implementation of std::condition_variable. See:
+ // - https://bugs.webkit.org/show_bug.cgi?id=148027
+ // - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58931
if (timeout == Clock::time_point::max())
me->parkingCondition.wait(locker);
else
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes