diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py index 574b5db5afb6846..075905d4943024e 100644 --- a/Lib/multiprocessing/pool.py +++ b/Lib/multiprocessing/pool.py @@ -154,7 +154,7 @@ def Process(ctx, *args, **kwds): return ctx.Process(*args, **kwds) def __init__(self, processes=None, initializer=None, initargs=(), - maxtasksperchild=None, context=None): + maxtasksperchild=None, context=None, name='Process-Pool'): self._ctx = context or get_context() self._setup_queues() self._taskqueue = queue.SimpleQueue() @@ -163,6 +163,7 @@ def __init__(self, processes=None, initializer=None, initargs=(), self._maxtasksperchild = maxtasksperchild self._initializer = initializer self._initargs = initargs + self._name = name if processes is None: processes = os.cpu_count() or 1 @@ -177,6 +178,7 @@ def __init__(self, processes=None, initializer=None, initargs=(), self._repopulate_pool() self._worker_handler = threading.Thread( + name='{}-Worker-Handler'.format(self._name), target=Pool._handle_workers, args=(self._cache, self._taskqueue, self._ctx, self.Process, self._processes, self._pool, self._inqueue, self._outqueue, @@ -187,7 +189,9 @@ def __init__(self, processes=None, initializer=None, initargs=(), self._worker_handler._state = RUN self._worker_handler.start() + self._task_handler = threading.Thread( + name='{}-Task-Handler'.format(self._name), target=Pool._handle_tasks, args=(self._taskqueue, self._quick_put, self._outqueue, self._pool, self._cache) @@ -197,6 +201,7 @@ def __init__(self, processes=None, initializer=None, initargs=(), self._task_handler.start() self._result_handler = threading.Thread( + name='{}-Result-Handler'.format(self._name), target=Pool._handle_results, args=(self._outqueue, self._quick_get, self._cache) ) @@ -235,17 +240,19 @@ def _repopulate_pool(self): self._outqueue, self._initializer, self._initargs, self._maxtasksperchild, - self._wrap_exception) + self._wrap_exception, + self._name) @staticmethod def _repopulate_pool_static(ctx, Process, processes, pool, inqueue, outqueue, initializer, initargs, - maxtasksperchild, wrap_exception): + maxtasksperchild, wrap_exception, name): """Bring the number of pool processes up to the specified number, for use after reaping workers which have exited. """ for i in range(processes - len(pool)): w = Process(ctx, target=worker, + name='{}-Worker-{}'.format(name, i), args=(inqueue, outqueue, initializer, initargs, maxtasksperchild, @@ -824,8 +831,8 @@ def Process(ctx, *args, **kwds): from .dummy import Process return Process(*args, **kwds) - def __init__(self, processes=None, initializer=None, initargs=()): - Pool.__init__(self, processes, initializer, initargs) + def __init__(self, processes=None, initializer=None, initargs=(), name='Thread-Pool'): + Pool.__init__(self, processes, initializer, initargs, name=name) def _setup_queues(self): self._inqueue = queue.SimpleQueue() diff --git a/Misc/NEWS.d/next/Library/2018-10-17-09-09-51.bpo-34996.lzdfsg.rst b/Misc/NEWS.d/next/Library/2018-10-17-09-09-51.bpo-34996.lzdfsg.rst new file mode 100644 index 000000000000000..5dc6427e68a079d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-10-17-09-09-51.bpo-34996.lzdfsg.rst @@ -0,0 +1 @@ +Add name paramter to process and thread pool