[autotest] Fix a reference bug
SchedulerError was moved from host_scheduler to scheduler_lib.
Also change suite scheduler driver to use contextlib.closing for threadpool
handling.
BUG=None
TEST=unittest, test suite scheduler run
Change-Id: I56016c4817a5a7fece7076a82bede462f74d5d59
Reviewed-on: https://chromium-review.googlesource.com/321380
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Dan Shi <dshi@google.com>
Reviewed-by: Simran Basi <sbasi@chromium.org>
diff --git a/site_utils/suite_scheduler/driver.py b/site_utils/suite_scheduler/driver.py
index 832523a..8d18c28 100644
--- a/site_utils/suite_scheduler/driver.py
+++ b/site_utils/suite_scheduler/driver.py
@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import contextlib
import logging
import time
from multiprocessing import pool
@@ -166,8 +167,10 @@
boards = self._enumerator.Enumerate()
logging.info('%d boards currently in the lab: %r', len(boards), boards)
thread_pool = pool.ThreadPool(POOL_SIZE)
- for e in self._events.itervalues():
- if e.ShouldHandle():
+ with contextlib.closing(thread_pool):
+ for e in self._events.itervalues():
+ if not e.ShouldHandle():
+ continue
logging.info('Handling %s event for %d boards', e.keyword,
len(boards))
args = []
@@ -180,8 +183,6 @@
e.keyword, len(boards))
e.UpdateCriteria()
- thread_pool.close()
-
def ForceEventsOnceForBuild(self, keywords, build_name):
"""Force events with provided keywords to happen, with given build.