Title: [215697] trunk/Tools
Revision
215697
Author
keith_mil...@apple.com
Date
2017-04-24 14:43:50 -0700 (Mon, 24 Apr 2017)

Log Message

ThreadMessage API tests failing on release bots
https://bugs.webkit.org/show_bug.cgi?id=171246

Reviewed by Saam Barati.

Need to make sure that C++ doesn't optimize away our spin loop.

* TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:
(runThreadMessageTest):
(TEST):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (215696 => 215697)


--- trunk/Tools/ChangeLog	2017-04-24 21:33:05 UTC (rev 215696)
+++ trunk/Tools/ChangeLog	2017-04-24 21:43:50 UTC (rev 215697)
@@ -1,3 +1,16 @@
+2017-04-24  Keith Miller  <keith_mil...@apple.com>
+
+        ThreadMessage API tests failing on release bots
+        https://bugs.webkit.org/show_bug.cgi?id=171246
+
+        Reviewed by Saam Barati.
+
+        Need to make sure that C++ doesn't optimize away our spin loop.
+
+        * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:
+        (runThreadMessageTest):
+        (TEST):
+
 2017-04-24  Alex Christensen  <achristen...@webkit.org>
 
         Reduce copies and allocations in SharedBuffer::append

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp (215696 => 215697)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp	2017-04-24 21:33:05 UTC (rev 215696)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp	2017-04-24 21:43:50 UTC (rev 215697)
@@ -35,10 +35,9 @@
 
 static void runThreadMessageTest(unsigned numSenders, unsigned numMessages)
 {
-    bool receiverShouldKeepRunning = true;
-    dataLogLn("starting");
+    Atomic<bool> receiverShouldKeepRunning(true);
     RefPtr<Thread> receiverThread = Thread::create("ThreadMessage receiver", [&receiverShouldKeepRunning] () {
-        while (receiverShouldKeepRunning) { }
+        while (receiverShouldKeepRunning.load()) { }
     });
     ASSERT_TRUE(receiverThread);
 
@@ -64,7 +63,7 @@
     for (unsigned i = 0; i < numSenders; ++i)
         senderThreads[i]->waitForCompletion();
 
-    receiverShouldKeepRunning = false;
+    receiverShouldKeepRunning.store(false);
     receiverThread->waitForCompletion();
 
     for (unsigned i = 0; i < numSenders; ++i) {
@@ -102,10 +101,10 @@
         return SignalAction::Handled;
     });
 
-    bool receiverShouldKeepRunning = true;
+    Atomic<bool> receiverShouldKeepRunning(true);
     RefPtr<Thread> receiverThread = (Thread::create("ThreadMessage receiver",
         [&receiverShouldKeepRunning] () {
-            while (receiverShouldKeepRunning) { }
+            while (receiverShouldKeepRunning.load()) { }
     }));
     ASSERT_TRUE(receiverThread);
 
@@ -112,7 +111,7 @@
     bool signalFired;
     {
         std::unique_lock<std::mutex> locker(static_cast<ReflectedThread*>(receiverThread.get())->m_mutex);
-        receiverShouldKeepRunning = false;
+        receiverShouldKeepRunning.store(false);
         EXPECT_FALSE(static_cast<ReflectedThread*>(receiverThread.get())->hasExited());
         sleep(1);
         signalFired = !pthread_kill(static_cast<ReflectedThread*>(receiverThread.get())->m_handle, toSystemSignal(Signal::Usr));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to