229: def eval_children_and_apply_resource(resource)
230: events = []
231:
232: @resourcemetrics[:scheduled] += 1
233:
234: changecount = @changes.length
235:
236:
237:
238: children = eval_generate(resource)
239:
240: if ! children.empty? and resource.depthfirst?
241: children.each do |child|
242:
243: events += eval_resource(child, false)
244: end
245: end
246:
247:
248: seconds = thinmark do
249: events += apply(resource)
250: end
251:
252: if ! children.empty? and ! resource.depthfirst?
253: children.each do |child|
254: events += eval_resource(child)
255: end
256: end
257:
258:
259:
260:
261:
262:
263: unless children.empty?
264: @changes[changecount..-1].each { |change| change.proxy = resource }
265: end
266:
267:
268: @timemetrics[resource.class.name] += seconds
269:
270: events
271: end