@@ -922,7 +922,8 @@ def test_waitfor(self):
922922 self .assertEqual (p .exitcode , 0 )
923923
924924 @classmethod
925- def _test_waitfor_timeout_f (cls , cond , state , success ):
925+ def _test_waitfor_timeout_f (cls , cond , state , success , sem ):
926+ sem .release ()
926927 with cond :
927928 expected = 0.1
928929 dt = time .time ()
@@ -938,11 +939,13 @@ def test_waitfor_timeout(self):
938939 cond = self .Condition ()
939940 state = self .Value ('i' , 0 )
940941 success = self .Value ('i' , False )
942+ sem = self .Semaphore (0 )
941943
942944 p = self .Process (target = self ._test_waitfor_timeout_f ,
943- args = (cond , state , success ))
945+ args = (cond , state , success , sem ))
944946 p .daemon = True
945947 p .start ()
948+ self .assertTrue (sem .acquire (timeout = 10 ))
946949
947950 # Only increment 3 times, so state == 4 is never reached.
948951 for i in range (3 ):
@@ -2723,8 +2726,8 @@ def test_wait_timeout(self):
27232726 delta = time .time () - start
27242727
27252728 self .assertEqual (res , [])
2726- self .assertLess (delta , expected + 1 )
2727- self .assertGreater (delta , expected - 1 )
2729+ self .assertLess (delta , expected * 2 )
2730+ self .assertGreater (delta , expected * 0.5 )
27282731
27292732 b .send (None )
27302733
0 commit comments