mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-05 13:23:37 +02:00
Do not allow new jobs to start when all cores are used. Also Fix #6130 (Conversion details show wrong conversion in title)
This commit is contained in:
parent
7c7f5ec119
commit
e9c1aa873c
2 changed files with 11 additions and 3 deletions
|
|
@ -175,6 +175,7 @@ def _add_job(self, job):
|
|||
self.jobs.append(job)
|
||||
self.jobs.sort()
|
||||
self.job_added.emit(len(self.unfinished_jobs()))
|
||||
self.layoutChanged.emit()
|
||||
|
||||
def done_jobs(self):
|
||||
return [j for j in self.jobs if j.is_finished]
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ def __init__(self, notify_on_job_done=lambda x: x, pool_size=None,
|
|||
authkey=self.auth_key, backlog=4)
|
||||
self.add_jobs_queue, self.changed_jobs_queue = Queue(), Queue()
|
||||
self.kill_queue = Queue()
|
||||
self.waiting_jobs, self.processing_jobs = [], deque()
|
||||
self.waiting_jobs = []
|
||||
self.pool, self.workers = deque(), deque()
|
||||
self.launched_worker_count = 0
|
||||
self._worker_launch_lock = RLock()
|
||||
|
|
@ -227,8 +227,15 @@ def run(self):
|
|||
|
||||
def suitable_waiting_job(self):
|
||||
available_workers = len(self.pool)
|
||||
if available_workers == 0:
|
||||
return None
|
||||
for worker in self.workers:
|
||||
job = worker.job
|
||||
if job.core_usage == -1:
|
||||
available_workers = 0
|
||||
elif job.core_usage > 1:
|
||||
available_workers -= job.core_usage - 1
|
||||
if available_workers < 1:
|
||||
return None
|
||||
|
||||
for i, job in enumerate(self.waiting_jobs):
|
||||
if job.core_usage == -1:
|
||||
if available_workers >= self.pool_size:
|
||||
|
|
|
|||
Loading…
Reference in a new issue