]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/common/test_fair_mutex: s/std::thread/std::async()/
authorKefu Chai <kchai@redhat.com>
Wed, 18 Aug 2021 06:06:55 +0000 (14:06 +0800)
committerXiubo Li <xiubli@redhat.com>
Mon, 13 Sep 2021 06:15:42 +0000 (14:15 +0800)
for better readability, as we don't need to care about the details of
the executor. and the returned futures are blocked in their dtor as

> these actions will not block for the shared state to become ready,
> except that it may block if all of the following are true: the
> shared state was created by a call to std::async, the shared state
> is not yet ready, and this was the last reference to the shared state.

Signed-off-by: Kefu Chai <kchai@redhat.com>
(cherry picked from commit 4e35ac670bc75e3507777d4375bbbb0fea8533ba)

src/test/common/test_fair_mutex.cc

index 1ee8b8ca4ac84e1df1b58a3492ecf190454dd438..2eaf67b54c370c5c192181739766c2e12fe532cf 100644 (file)
@@ -3,7 +3,7 @@
 #include <array>
 #include <mutex>
 #include <numeric>
-#include <thread>
+#include <future>
 #include <gtest/gtest.h>
 #include "common/fair_mutex.h"
 
@@ -61,11 +61,8 @@ TEST(FairMutex, fair)
       };
     }
   };
-  std::array<std::thread, NR_TEAMS> teams;
+  std::array<std::future<void>, NR_TEAMS> completed;
   for (int team = 0; team < NR_TEAMS; team++) {
-    teams[team] = std::thread(play, team);
-  }
-  for (auto& team : teams) {
-    team.join();
+    completed[team] = std::async(std::launch::async, play, team);
   }
 }