diff options
Diffstat (limited to 'Lib/test/test_free_threading/test_itertools_batched.py')
-rw-r--r-- | Lib/test/test_free_threading/test_itertools_batched.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Lib/test/test_free_threading/test_itertools_batched.py b/Lib/test/test_free_threading/test_itertools_batched.py new file mode 100644 index 0000000..fa9e06b --- /dev/null +++ b/Lib/test/test_free_threading/test_itertools_batched.py @@ -0,0 +1,39 @@ +import unittest +import sys +from threading import Thread, Barrier +from itertools import batched +from test.support import threading_helper + + +threading_helper.requires_working_threading(module=True) + +class EnumerateThreading(unittest.TestCase): + + @threading_helper.reap_threads + def test_threading(self): + number_of_threads = 10 + number_of_iterations = 20 + barrier = Barrier(number_of_threads) + def work(it): + barrier.wait() + while True: + try: + _ = next(it) + except StopIteration: + break + + data = tuple(range(1000)) + for it in range(number_of_iterations): + batch_iterator = batched(data, 2) + worker_threads = [] + for ii in range(number_of_threads): + worker_threads.append( + Thread(target=work, args=[batch_iterator])) + + with threading_helper.start_threads(worker_threads): + pass + + barrier.reset() + +if __name__ == "__main__": + unittest.main() |