]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common: fix rare race condition in Throttle unit tests 944/head
authorLoic Dachary <loic@dachary.org>
Sun, 15 Dec 2013 13:31:27 +0000 (14:31 +0100)
committerLoic Dachary <loic@dachary.org>
Sun, 15 Dec 2013 13:31:27 +0000 (14:31 +0100)
The thread created to test Throttle race conditions updates a value (
throttle.get_current() ) that is tested by the main gtest thread but is
not protected by a lock. Instead of adding a lock, the main thread tests
the value after pthread_join() on the child thread.

http://tracker.ceph.com/issues/6679 fixes #6679

Signed-off-by: Loic Dachary <loic@dachary.org>
src/test/common/Throttle.cc

index c07e242f9b2b6a71a38c3716efa0bfbe100a88c5..0964cbeffaf6650f2c1383e3e36a48db5e5b68da 100644 (file)
@@ -188,10 +188,8 @@ TEST_F(ThrottleTest, wait) {
     //
     throttle.wait(throttle_max * 100);
     usleep(delay);
-    ASSERT_EQ(throttle.get_current(), throttle_max / 2);
-
-
     t.join();
+    ASSERT_EQ(throttle.get_current(), throttle_max / 2);
 
     if (!(waited = t.waited)) {
       delay *= 2;