[libcxx-commits] [libcxx] [libc++][chrono][threading] Implement LWG 3504: `condition_variable::wait_for` is overspecified (PR #222443)

via libcxx-commits libcxx-commits at lists.llvm.org
Wed Sep 9 13:54:50 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff origin/main HEAD --extensions ,cpp,h -- libcxx/include/__condition_variable/condition_variable.h libcxx/include/condition_variable libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_pred.pass.cpp libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_token_pred.pass.cpp --diff_from_common_commit
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
index df0743c48..a9c888533 100644
--- a/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
+++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
@@ -111,9 +111,9 @@ int main(int, char**) {
     std::mutex mutex;
     std::unique_lock<std::mutex> lock(mutex);
 
-    auto start = std::chrono::steady_clock::now();
+    auto start            = std::chrono::steady_clock::now();
     std::cv_status status = cv.wait_for(lock, std::chrono::duration<float>(0.25f));
-    auto elapsed = std::chrono::steady_clock::now() - start;
+    auto elapsed          = std::chrono::steady_clock::now() - start;
 
     assert(status == std::cv_status::timeout);
     assert(elapsed >= std::chrono::milliseconds(200));
diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp
index 2497c3dce..bcf22a270 100644
--- a/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp
+++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for_pred.pass.cpp
@@ -161,8 +161,8 @@ int main(int, char**) {
     std::mutex mutex;
     std::unique_lock<std::mutex> lock(mutex);
 
-    auto start = std::chrono::steady_clock::now();
-    bool result = cv.wait_for(lock, std::chrono::duration<float>(0.25f), [] { return false; });
+    auto start   = std::chrono::steady_clock::now();
+    bool result  = cv.wait_for(lock, std::chrono::duration<float>(0.25f), [] { return false; });
     auto elapsed = std::chrono::steady_clock::now() - start;
 
     assert(result == false);
diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp
index e8bad68da..2f2d46a88 100644
--- a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp
+++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp
@@ -117,9 +117,9 @@ void test() {
     std::mutex mutex;
     std::unique_lock<std::mutex> lock(mutex);
 
-    auto start = std::chrono::steady_clock::now();
+    auto start            = std::chrono::steady_clock::now();
     std::cv_status status = cv.wait_for(lock, std::chrono::duration<float>(0.25f));
-    auto elapsed = std::chrono::steady_clock::now() - start;
+    auto elapsed          = std::chrono::steady_clock::now() - start;
 
     assert(status == std::cv_status::timeout);
     assert(elapsed > std::chrono::milliseconds(200));
diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_pred.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_pred.pass.cpp
index 3d8494fa1..fb9b3ccdd 100644
--- a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_pred.pass.cpp
+++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_pred.pass.cpp
@@ -167,8 +167,8 @@ void test() {
     std::mutex mutex;
     std::unique_lock<std::mutex> lock(mutex);
 
-    auto start = std::chrono::steady_clock::now();
-    bool result = cv.wait_for(lock, std::chrono::duration<float>(0.25f), [] { return false; });
+    auto start   = std::chrono::steady_clock::now();
+    bool result  = cv.wait_for(lock, std::chrono::duration<float>(0.25f), [] { return false; });
     auto elapsed = std::chrono::steady_clock::now() - start;
 
     assert(result == false);
diff --git a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_token_pred.pass.cpp b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_token_pred.pass.cpp
index 3b3f7fd79..7b991d285 100644
--- a/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_token_pred.pass.cpp
+++ b/libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for_token_pred.pass.cpp
@@ -244,9 +244,8 @@ void test() {
     std::unique_lock<std::mutex> lock(mutex);
     std::stop_source ss;
 
-    auto start = std::chrono::steady_clock::now();
-    bool result = cv.wait_for(lock, ss.get_token(), std::chrono::duration<float>(0.25f),
-                              [] { return false; });
+    auto start   = std::chrono::steady_clock::now();
+    bool result  = cv.wait_for(lock, ss.get_token(), std::chrono::duration<float>(0.25f), [] { return false; });
     auto elapsed = std::chrono::steady_clock::now() - start;
 
     assert(result == false);

``````````

</details>


https://github.com/llvm/llvm-project/pull/222443


More information about the libcxx-commits mailing list