spacepaste

master.py.orig [2013-07-22 15:53:32.423654578 -0700]
master.py [2013-07-22 15:55:23.143645334 -0700]
161 161 return sorted(builders, self._sortfunc)
162 162
163 163 def _get_processors(self):
164 if self.shuttingDown:
165 return []
166 builders = self.builders.values()
164 if not self.shuttingDown:
165 builders = self.builders.values()
166 else:
167 # Allow builders to run if they have something waiting on them.
168 # SMELL: this is pretty tightly coupled to the Triggerable scheduler implementation.
169 builders = list(set(
170 self.builders[bname]
171 for builder in self.builders.values()
172 for currentBuild in builder.building
173 if getattr(currentBuild.currentStep, 'waitForFinish', None)
174 for schedname in getattr(currentBuild.currentStep, 'schedulerNames', ())
175 for bname in self.parent.scheduler_manager.namedServices[schedname].builderNames
176 ))
177 if builders:
178 log.msg("Shutting down, but these builders have someone waiting for them: %r" % builders)
167 179 sorter = self.prioritizeBuilders or self._sort_builders
168 180 try:
169 181 builders = sorter(self.parent, builders)