summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>2022-01-05 19:31:24 -0500
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>2022-01-08 16:03:30 -0500
commit8a21e0c10cc83b8ac16241bbe31cb0ad60bc34aa (patch)
tree0e8f6a9bd12e1c20711ab063193e24ea803ed387
parentfe230bfc00a845b59af4f2a5100571ed3e6257a7 (diff)
downloadllvm-8a21e0c10cc83b8ac16241bbe31cb0ad60bc34aa.tar.gz
[libc++] [test] Remove `UNSUPPORTED: stdlib=msvc` from lock.pass.cpp.
Casey Carter says, "We run std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp on every CI and it works fine with MSVC STL. I'm guessing this annotation predates Billy's rewrite of std::lock in 2017-ish." Differential Revision: https://reviews.llvm.org/D116712
-rw-r--r--libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp b/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
index ccf476c81c9d..8dd837b0a06c 100644
--- a/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
+++ b/libcxx/test/std/thread/thread.mutex/thread.lock.algorithm/lock.pass.cpp
@@ -8,10 +8,14 @@
//
// UNSUPPORTED: libcpp-has-no-threads
-// This test hangs forever when built against libstdc++ and MSVC. In order to allow
-// validation of the test suite against other STLs we have to mark it
-// unsupported.
-// UNSUPPORTED: stdlib=libstdc++, stdlib=msvc
+// This test hangs forever when built against libstdc++ (Oct 2016).
+// UNSUPPORTED: stdlib=libstdc++
+
+// This test isn't quite standards-conforming: it's testing our specific
+// algorithm, where when lx.try_lock() fails we start the next attempt
+// with an unconditional lx.lock(). Thus our algorithm can handle a list
+// of mutexes where at-most-one of them is of the evil type `class L1`,
+// but will loop forever if two or more of them are `class L1`.
// <mutex>