Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Side by Side Diff: gclient_utils.py

Issue 8135008: Force requirements modification to be locked. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: rebase against head Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gclient.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Generic utils.""" 5 """Generic utils."""
6 6
7 import errno 7 import errno
8 import logging 8 import logging
9 import os 9 import os
10 import Queue 10 import Queue
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 490
491 @property 491 @property
492 def name(self): 492 def name(self):
493 return self._name 493 return self._name
494 494
495 @property 495 @property
496 @lockedmethod 496 @lockedmethod
497 def requirements(self): 497 def requirements(self):
498 return tuple(self._requirements) 498 return tuple(self._requirements)
499 499
500 @lockedmethod
501 def add_requirement(self, new):
502 self._requirements.add(new)
503
500 504
501 class ExecutionQueue(object): 505 class ExecutionQueue(object):
502 """Runs a set of WorkItem that have interdependencies and were WorkItem are 506 """Runs a set of WorkItem that have interdependencies and were WorkItem are
503 added as they are processed. 507 added as they are processed.
504 508
505 In gclient's case, Dependencies sometime needs to be run out of order due to 509 In gclient's case, Dependencies sometime needs to be run out of order due to
506 From() keyword. This class manages that all the required dependencies are run 510 From() keyword. This class manages that all the required dependencies are run
507 before running each one. 511 before running each one.
508 512
509 Methods of this class are thread safe. 513 Methods of this class are thread safe.
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 logging.info('Caught exception in thread %s' % self.item.name) 667 logging.info('Caught exception in thread %s' % self.item.name)
664 logging.info(str(sys.exc_info())) 668 logging.info(str(sys.exc_info()))
665 work_queue.exceptions.put(sys.exc_info()) 669 work_queue.exceptions.put(sys.exc_info())
666 logging.info('_Worker.run(%s) done' % self.item.name) 670 logging.info('_Worker.run(%s) done' % self.item.name)
667 671
668 work_queue.ready_cond.acquire() 672 work_queue.ready_cond.acquire()
669 try: 673 try:
670 work_queue.ready_cond.notifyAll() 674 work_queue.ready_cond.notifyAll()
671 finally: 675 finally:
672 work_queue.ready_cond.release() 676 work_queue.ready_cond.release()
OLDNEW
« no previous file with comments | « gclient.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698