As in the gcc testsuite, systems without preemptive multi-threading require sched_yield calls to be placed at points in which a context switch might be needed to enable the test to complete.
Regstrapped on x86_64-linux-gnu, also tested with a cross to aarch64-rtems6. Ok to install? for libstdc++-v3/ChangeLog * testsuite/30_threads/this_thread/60421.cc (test02): Call sched_yield. --- .../testsuite/30_threads/this_thread/60421.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc b/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc index ad6f9aeffcc80..12dbeba1cc492 100644 --- a/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc +++ b/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc @@ -59,6 +59,7 @@ test02() while (!sleeping) { // Wait for the thread to start sleeping. + sched_yield (); } while (sleeping) { -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>