11import unittest
2- from threading import Thread
2+ from threading import Barrier , Thread
33from test .test_json import CTest
44from test .support import threading_helper
55
66
77def encode_json_helper (json , worker , data , number_of_threads , number_of_json_encodings = 100 ):
88 worker_threads = []
9+ barrier = Barrier (number_of_threads )
910 for index in range (number_of_threads ):
10- worker_threads .append (Thread (target = worker , args = [data , index ]))
11+ worker_threads .append (Thread (target = worker , args = [barrier , data , index ]))
1112 for t in worker_threads :
1213 t .start ()
1314 for ii in range (number_of_json_encodings ):
@@ -33,7 +34,8 @@ class TestJsonEncoding(CTest):
3334
3435 def test_json_mutating_list (self ):
3536
36- def worker (data , index ):
37+ def worker (barrier , data , index ):
38+ barrier .wait ()
3739 while data :
3840 for d in data :
3941 if len (d ) > 5 :
@@ -46,7 +48,8 @@ def worker(data, index):
4648
4749 def test_json_mutating_dict (self ):
4850
49- def worker (data , index ):
51+ def worker (barrier , data , index ):
52+ barrier .wait ()
5053 while data :
5154 for d in data :
5255 if len (d ) > 5 :
@@ -60,7 +63,8 @@ def worker(data, index):
6063
6164 def test_json_mutating_mapping (self ):
6265
63- def worker (data , index ):
66+ def worker (barrier , data , index ):
67+ barrier .wait ()
6468 while data :
6569 for d in data :
6670 if len (d .mapping ) > 3 :
0 commit comments