| Index: gclient.py
|
| diff --git a/gclient.py b/gclient.py
|
| index c038738c10d2d7d45793f947651ebf7edb460970..046b4fc8907cff8df035222a833bd15a05a48342 100644
|
| --- a/gclient.py
|
| +++ b/gclient.py
|
| @@ -145,9 +145,8 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem):
|
| # self.dependencies and self.requirements are read and modified from
|
| # multiple threads at the same time. Sad.
|
| GClientKeywords.__init__(self)
|
| - gclient_utils.WorkItem.__init__(self)
|
| + gclient_utils.WorkItem.__init__(self, name)
|
| self.parent = parent
|
| - self.name = name
|
| self.url = url
|
| self.parsed_url = None
|
| # These 2 are only set in .gclient and not in DEPS files.
|
| @@ -169,8 +168,6 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem):
|
| self.processed = False
|
| # This dependency had its hook run
|
| self.hooks_ran = False
|
| - # Required dependencies to run before running this one:
|
| - self.requirements = set()
|
|
|
| # Post process the url to remove trailing slashes.
|
| if isinstance(self.url, basestring):
|
| @@ -201,7 +198,7 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem):
|
| # self.parent is implicitly a requirement. This will be recursive by
|
| # definition.
|
| if self.parent and self.parent.name:
|
| - self.requirements.add(self.parent.name)
|
| + self._requirements.add(self.parent.name)
|
|
|
| # For a tree with at least 2 levels*, the leaf node needs to depend
|
| # on the level higher up in an orderly way.
|
| @@ -219,10 +216,10 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem):
|
| for i in range(0, root_deps.index(self.parent)):
|
| value = root_deps[i]
|
| if value.name:
|
| - self.requirements.add(value.name)
|
| + self._requirements.add(value.name)
|
|
|
| if isinstance(self.url, self.FromImpl):
|
| - self.requirements.add(self.url.module_name)
|
| + self._requirements.add(self.url.module_name)
|
|
|
| if self.name and self.should_process:
|
| def yield_full_tree(root):
|
| @@ -238,10 +235,16 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem):
|
| continue
|
| # Step 1: Find any requirements self may need.
|
| if self.name.startswith(posixpath.join(obj.name, '')):
|
| - self.requirements.add(obj.name)
|
| + self._requirements.add(obj.name)
|
| # Step 2: Find any requirements self may impose.
|
| if obj.name.startswith(posixpath.join(self.name, '')):
|
| - obj.requirements.add(self.name)
|
| + try:
|
| + # Access to a protected member _requirements of a client class
|
| + # pylint: disable=W0212
|
| + obj.lock.acquire()
|
| + obj._requirements.add(self.name)
|
| + finally:
|
| + obj.lock.release()
|
|
|
| def LateOverride(self, url):
|
| """Resolves the parsed url from url.
|
|
|