The following code runs fine:
import itertools
import concurrent.futures
test_tuple = (1, "test")
iterations = range(1, 100)
def print_func(print_int, test_tuple):
print(print_int, test_tuple)
def parallel_func():
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(print_func, iterations, itertools.repeat(test_tuple))
if __name__ == "__main__":
parallel_func()
However if I use a namedtuple
:
import itertools
import concurrent.futures
from collections import namedtuple
TestNamedTuple = namedtuple("test", "id, name")
test_tuple = TestNamedTuple(1, "test")
iterations = range(1, 100)
def print_func(print_int, test_tuple):
print(print_int, test_tuple.id, test_tuple.name)
def parallel_func():
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(print_func, iterations, itertools.repeat(test_tuple))
if __name__ == "__main__":
parallel_func()
The terminal locks up with no error message to be seen. Any ideas?