summaryrefslogtreecommitdiff
path: root/executors.py
diff options
context:
space:
mode:
Diffstat (limited to 'executors.py')
-rw-r--r--executors.py27
1 files changed, 15 insertions, 12 deletions
diff --git a/executors.py b/executors.py
index 633b11b..e95ed71 100644
--- a/executors.py
+++ b/executors.py
@@ -84,10 +84,10 @@ class BaseExecutor(ABC):
pass
@abstractmethod
- def shutdown(self, wait: bool = True) -> None:
+ def shutdown(self, *, wait: bool = True, quiet: bool = False) -> None:
pass
- def shutdown_if_idle(self) -> bool:
+ def shutdown_if_idle(self, *, quiet: bool = False) -> bool:
"""Shutdown the executor and return True if the executor is idle
(i.e. there are no pending or active tasks). Return False
otherwise. Note: this should only be called by the launcher
@@ -95,7 +95,7 @@ class BaseExecutor(ABC):
"""
if self.task_count == 0:
- self.shutdown()
+ self.shutdown(wait=True, quiet=quiet)
return True
return False
@@ -155,11 +155,12 @@ class ThreadExecutor(BaseExecutor):
return result
@overrides
- def shutdown(self, wait=True) -> None:
+ def shutdown(self, *, wait: bool = True, quiet: bool = False) -> None:
if not self.already_shutdown:
logger.debug(f'Shutting down threadpool executor {self.title}')
- print(self.histogram.__repr__(label_formatter='%ds'))
self._thread_pool_executor.shutdown(wait)
+ if not quiet:
+ print(self.histogram.__repr__(label_formatter='%ds'))
self.already_shutdown = True
@@ -197,11 +198,12 @@ class ProcessExecutor(BaseExecutor):
return result
@overrides
- def shutdown(self, wait=True) -> None:
+ def shutdown(self, *, wait: bool = True, quiet: bool = False) -> None:
if not self.already_shutdown:
logger.debug(f'Shutting down processpool executor {self.title}')
self._process_executor.shutdown(wait)
- print(self.histogram.__repr__(label_formatter='%ds'))
+ if not quiet:
+ print(self.histogram.__repr__(label_formatter='%ds'))
self.already_shutdown = True
def __getstate__(self):
@@ -1107,13 +1109,14 @@ class RemoteExecutor(BaseExecutor):
return self._helper_executor.submit(self.launch, bundle)
@overrides
- def shutdown(self, wait=True) -> None:
+ def shutdown(self, *, wait: bool = True, quiet: bool = False) -> None:
if not self.already_shutdown:
logging.debug(f'Shutting down RemoteExecutor {self.title}')
self.heartbeat_stop_event.set()
self.heartbeat_thread.join()
self._helper_executor.shutdown(wait)
- print(self.histogram.__repr__(label_formatter='%ds'))
+ if not quiet:
+ print(self.histogram.__repr__(label_formatter='%ds'))
self.already_shutdown = True
@@ -1212,11 +1215,11 @@ class DefaultExecutors(object):
def shutdown(self) -> None:
if self.thread_executor is not None:
- self.thread_executor.shutdown()
+ self.thread_executor.shutdown(wait=True, quiet=True)
self.thread_executor = None
if self.process_executor is not None:
- self.process_executor.shutdown()
+ self.process_executor.shutdown(wait=True, quiet=True)
self.process_executor = None
if self.remote_executor is not None:
- self.remote_executor.shutdown()
+ self.remote_executor.shutdown(wait=True, quiet=True)
self.remote_executor = None