From 99fb250bbb4bb53446f5041a372a002b1da45981 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Fri, 2 Nov 2012 20:03:50 +0100 Subject: [PATCH] jqueue: Set task ID for jobs added to workerpool The job ID is re-used as the task ID, as job IDs are unique. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Bernardo Dal Seno <bdalseno@google.com> --- lib/jqueue.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/jqueue.py b/lib/jqueue.py index a562e6e73..3319a0a5f 100644 --- a/lib/jqueue.py +++ b/lib/jqueue.py @@ -35,6 +35,7 @@ import time import weakref import threading import itertools +import operator try: # pylint: disable=E0611 @@ -69,6 +70,9 @@ JOBQUEUE_THREADS = 25 _LOCK = "_lock" _QUEUE = "_queue" +#: Retrieves "id" attribute +_GetIdAttr = operator.attrgetter("id") + class CancelJob(Exception): """Special exception to cancel a job. @@ -2257,7 +2261,8 @@ class JobQueue(object): """ assert self._lock.is_owned(shared=0), "Must own lock in exclusive mode" self._wpool.AddManyTasks([(job, ) for job in jobs], - priority=[job.CalcPriority() for job in jobs]) + priority=[job.CalcPriority() for job in jobs], + task_id=map(_GetIdAttr, jobs)) def _GetJobStatusForDependencies(self, job_id): """Gets the status of a job for dependencies. -- GitLab