| Index: gclient.py
|
| diff --git a/gclient.py b/gclient.py
|
| index 2d7a4a748ae6c812b54e7680cd4f73142bd2a218..9efc1c83fcb60aa79b8f6af3b43fe673c72642a0 100644
|
| --- a/gclient.py
|
| +++ b/gclient.py
|
| @@ -203,9 +203,6 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem, DependencySettings):
|
|
|
| def __init__(self, parent, name, url, safesync_url, managed, custom_deps,
|
| custom_vars, deps_file, should_process):
|
| - # Warning: this function can be called from any thread. Both
|
| - # 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, name)
|
| DependencySettings.__init__(
|
| @@ -219,7 +216,7 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem, DependencySettings):
|
|
|
| # Calculates properties:
|
| self.parsed_url = None
|
| - self.dependencies = []
|
| + self._dependencies = []
|
| # A cache of the files affected by the current operation, necessary for
|
| # hooks.
|
| self._file_list = []
|
| @@ -438,7 +435,7 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem, DependencySettings):
|
|
|
| # Convert the deps into real Dependency.
|
| for name, url in deps.iteritems():
|
| - if name in [s.name for s in self.dependencies]:
|
| + if name in [s.name for s in self._dependencies]:
|
| raise gclient_utils.Error(
|
| 'The same name "%s" appears multiple times in the deps section' %
|
| name)
|
| @@ -456,8 +453,10 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem, DependencySettings):
|
| raise gclient_utils.Error(
|
| 'Dependency %s specified more than once:\n %s\nvs\n %s' %
|
| (name, tree[name].hierarchy(), self.hierarchy()))
|
| - self.dependencies.append(Dependency(self, name, url, None, None, None,
|
| - None, self.deps_file, should_process))
|
| + self._dependencies.append(
|
| + Dependency(
|
| + self, name, url, None, None, None, None,
|
| + self.deps_file, should_process))
|
| logging.debug('Loaded: %s' % str(self))
|
|
|
| # Arguments number differs from overridden method
|
| @@ -638,7 +637,10 @@ class Dependency(GClientKeywords, gclient_utils.WorkItem, DependencySettings):
|
| return max(self.parent.recursion_limit - 1, 0)
|
|
|
| @property
|
| - @gclient_utils.lockedmethod
|
| + def dependencies(self):
|
| + return tuple(self._dependencies)
|
| +
|
| + @property
|
| def file_list(self):
|
| result = self._file_list[:]
|
| for d in self.dependencies:
|
| @@ -761,7 +763,7 @@ solutions = [
|
| if s['name'] in tree:
|
| raise gclient_utils.Error(
|
| 'Dependency %s specified more than once in .gclient' % s['name'])
|
| - self.dependencies.append(Dependency(
|
| + self._dependencies.append(Dependency(
|
| self, s['name'], s['url'],
|
| s.get('safesync_url', None),
|
| s.get('managed', True),
|
|
|