Closed as not planned
Description
Bug report
Bug description:
Q:
Run the following code, sometimes subprogres that is created by [class A's Pool or class B's Pool] is going to sleeping status, and there is not any error log output.
But code(#3 or #4)run success, code(#1 or #2) is not run,The reason is pool.close() and pool.join() is not writed in source code?
test.py
from multiprocessing import Pool
import os
from test_common import *
class Test:
def __init__(self):
self.A = A()
self.B = B()
def run(self):
data_list = list(range(10001, 11984))
a_list = self.A.run(data_list)
print("self.A.run end") #1
new_list = self.B.run(data_list, a_list)
print("self.B.run end") #2
def main():
run_module = Test()
run_module.run()
if __name__ == '__main__':
main()
---------------------------------------------
test_common.py
import os
import multiprocessing
from multiprocessing import Pool
import io
import datetime
import time
class A:
def __init__(self):
pass
def run(self, data_list):
a_list = []
for item in data_list:
file_path = "{}/{}.aaa".format("/tmp/aaa", item)
a_list.append(file_path)
pool_size = 1
pool = Pool(pool_size)
pool.map(methodA, a_list)
print("A#run end") #3
return a_list
def methodA(file_path):
if os.path.isfile(file_path):
return
# other code
class B:
def __init__(self):
pass
def run(self, data_list, a_list):
b_list = []
for item in data_list:
b_path = "{}/{}.bbb".format("/tmp/bbb", item)
b_list.append(b_path)
pool_size = 1
pool = Pool(pool_size)
pool.map(methodB, b_list)
print("B#run end") #4
return b_list
def methodB(b_path):
if os.path.isfile(b_path):
return
# other code
CPython versions tested on:
3.10
Operating systems tested on:
Linux
Metadata
Metadata
Assignees
Labels
No labels