Make pool._jobs private to discourage outside editing.
This commit is contained in:
parent
1921e62011
commit
7041448c82
1 changed files with 8 additions and 8 deletions
|
@ -30,7 +30,7 @@ class ThreadPool:
|
||||||
self.max_size = size
|
self.max_size = size
|
||||||
self.closed = False
|
self.closed = False
|
||||||
self.paused = paused
|
self.paused = paused
|
||||||
self.jobs = []
|
self._jobs = []
|
||||||
self.job_manager_lock = threading.Lock()
|
self.job_manager_lock = threading.Lock()
|
||||||
|
|
||||||
def _clear_done_jobs(self):
|
def _clear_done_jobs(self):
|
||||||
|
@ -38,7 +38,7 @@ class ThreadPool:
|
||||||
This function assumes that job_manager_lock is acquired!!
|
This function assumes that job_manager_lock is acquired!!
|
||||||
You should call clear_done_and_start_jobs instead!
|
You should call clear_done_and_start_jobs instead!
|
||||||
'''
|
'''
|
||||||
self.jobs[:] = [j for j in self.jobs if j.status in {PENDING, RUNNING}]
|
self._jobs[:] = [j for j in self._jobs if j.status in {PENDING, RUNNING}]
|
||||||
|
|
||||||
def _start_jobs(self):
|
def _start_jobs(self):
|
||||||
'''
|
'''
|
||||||
|
@ -50,7 +50,7 @@ class ThreadPool:
|
||||||
if available == 0:
|
if available == 0:
|
||||||
return
|
return
|
||||||
# print(f'Gonna start me some {available} jobs.')
|
# print(f'Gonna start me some {available} jobs.')
|
||||||
for job in list(self.jobs):
|
for job in list(self._jobs):
|
||||||
if job.status == PENDING:
|
if job.status == PENDING:
|
||||||
# print('starting', job)
|
# print('starting', job)
|
||||||
job.start()
|
job.start()
|
||||||
|
@ -106,7 +106,7 @@ class ThreadPool:
|
||||||
args=args,
|
args=args,
|
||||||
kwargs=kwargs,
|
kwargs=kwargs,
|
||||||
)
|
)
|
||||||
self.jobs.append(job)
|
self._jobs.append(job)
|
||||||
|
|
||||||
if not self.paused:
|
if not self.paused:
|
||||||
self._clear_done_and_start_jobs()
|
self._clear_done_and_start_jobs()
|
||||||
|
@ -134,7 +134,7 @@ class ThreadPool:
|
||||||
kwargs.pop('pool', None)
|
kwargs.pop('pool', None)
|
||||||
job = Job(pool=self, **kwargs)
|
job = Job(pool=self, **kwargs)
|
||||||
these_jobs.append(job)
|
these_jobs.append(job)
|
||||||
self.jobs.append(job)
|
self._jobs.append(job)
|
||||||
|
|
||||||
if not self.paused:
|
if not self.paused:
|
||||||
self._clear_done_and_start_jobs()
|
self._clear_done_and_start_jobs()
|
||||||
|
@ -166,14 +166,14 @@ class ThreadPool:
|
||||||
'''
|
'''
|
||||||
self.closed = True
|
self.closed = True
|
||||||
self.clear_done_and_start_jobs()
|
self.clear_done_and_start_jobs()
|
||||||
for job in self.jobs:
|
for job in self._jobs:
|
||||||
job.join()
|
job.join()
|
||||||
|
|
||||||
def running_count(self):
|
def running_count(self):
|
||||||
return sum(1 for job in list(self.jobs) if job.status is RUNNING)
|
return sum(1 for job in list(self._jobs) if job.status is RUNNING)
|
||||||
|
|
||||||
def unfinished_count(self):
|
def unfinished_count(self):
|
||||||
return sum(1 for job in list(self.jobs) if job.status in {PENDING, RUNNING})
|
return sum(1 for job in list(self._jobs) if job.status in {PENDING, RUNNING})
|
||||||
|
|
||||||
class Job:
|
class Job:
|
||||||
def __init__(self, pool, function, *, name=None, args=tuple(), kwargs=dict()):
|
def __init__(self, pool, function, *, name=None, args=tuple(), kwargs=dict()):
|
||||||
|
|
Loading…
Reference in a new issue