summaryrefslogtreecommitdiffstats
path: root/Lib/multiprocessing/pool.py
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-12-14 10:13:18 (GMT)
committerGitHub <noreply@github.com>2018-12-14 10:13:18 (GMT)
commit2b417fba25f036c2d6139875e389d80e4286ad75 (patch)
treef21f8eeb7a73df4ee3d57f2cf247be17de512b1f /Lib/multiprocessing/pool.py
parentafb3e71a1710c444fbe789b51df43ee16ee9ede7 (diff)
downloadcpython-2b417fba25f036c2d6139875e389d80e4286ad75.zip
cpython-2b417fba25f036c2d6139875e389d80e4286ad75.tar.gz
cpython-2b417fba25f036c2d6139875e389d80e4286ad75.tar.bz2
Add multiprocessing.Pool.__repr__() (GH-11137)
* Add multiprocessing.Pool.__repr__() to ease debug * RUN, CLOSE and TERMINATE constants values are now strings rather than integer to ease debug
Diffstat (limited to 'Lib/multiprocessing/pool.py')
-rw-r--r--Lib/multiprocessing/pool.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/Lib/multiprocessing/pool.py b/Lib/multiprocessing/pool.py
index c077541..cede9bb 100644
--- a/Lib/multiprocessing/pool.py
+++ b/Lib/multiprocessing/pool.py
@@ -30,9 +30,9 @@ from . import get_context, TimeoutError
# Constants representing the state of a pool
#
-RUN = 0
-CLOSE = 1
-TERMINATE = 2
+RUN = "RUN"
+CLOSE = "CLOSE"
+TERMINATE = "TERMINATE"
#
# Miscellaneous
@@ -217,6 +217,12 @@ class Pool(object):
exitpriority=15
)
+ def __repr__(self):
+ cls = self.__class__
+ return (f'<{cls.__module__}.{cls.__qualname__} '
+ f'state={self._state} '
+ f'pool_size={len(self._pool)}>')
+
def _join_exited_workers(self):
"""Cleanup after any worker processes which have exited due to reaching
their specified lifetime. Returns True if any workers were cleaned up.
@@ -432,7 +438,7 @@ class Pool(object):
try:
# iterating taskseq cannot fail
for task in taskseq:
- if thread._state:
+ if thread._state != RUN:
util.debug('task handler found thread._state != RUN')
break
try:
@@ -480,7 +486,7 @@ class Pool(object):
util.debug('result handler got EOFError/OSError -- exiting')
return
- if thread._state:
+ if thread._state != "RUN":
assert thread._state == TERMINATE, "Thread not in TERMINATE"
util.debug('result handler found thread._state=TERMINATE')
break