[libcxx] [test] Make the condvar wait_for tests less brittle
These seem to fail occasionally (they are marked as possibly requiring a retry). When doing a condvar wait_for(), it can wake up before the timeout as a spurious wakeup. In these cases, the wait_for() method returns that the timeout wasn't hit, and the test reruns another wait_for(). On Windows, it seems like the wait_for() operation often can end up returning slightly before the intended deadline - when intending to wait for 250 milliseconds, it can return after e.g. 235 milliseconds. In these cases, the wait_for() doesn't indicate a timeout. Previously, the test then reran a new wait_for() for a full 250 milliseconds each time. So for N consecutive wakeups slightly too early, we'd wait for (N+1)*250 milliseconds. Now it only reruns wait_for() for the remaining intended wait duration. Differential Revision: https://reviews.llvm.org/D99175
Loading
Please sign in to comment