Ver Fonte

tests: hopefully fix sporadic test failures with condition var test

rdb há 6 anos atrás
pai
commit
bf302a0838
1 ficheiros alterados com 11 adições e 5 exclusões
  1. 11 5
      tests/pipeline/test_condition_var.py

+ 11 - 5
tests/pipeline/test_condition_var.py

@@ -72,16 +72,22 @@ def test_cvar_notify_thread(num_threads):
             break
 
     assert state['waiting'] == num_threads
-    m.release()
 
     # OK, now signal it, and yield.  One thread must be unblocked per notify.
     for i in range(num_threads):
         cv.notify()
-        yield_thread()
-        m.acquire()
-        assert state['waiting'] == num_threads - i - 1
-        m.release()
+        expected_waiters = num_threads - i - 1
 
+        for j in range(1000):
+            m.release()
+            yield_thread()
+            m.acquire()
+            if state['waiting'] == expected_waiters:
+                break
+
+        assert state['waiting'] == expected_waiters
+
+    m.release()
     for thread in threads:
         thread.join()
     cv = None