summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Kanies <luke@reductivelabs.com>2010-03-22 16:42:03 -0700
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commit5aa26d08892010fc62de6adc278f07c8748d75e0 (patch)
tree237ab3c0f09ab8ef42ef1b98efb4847f70382baf
parentec7ea27e356dc159b37cc2a09b6f14841e796ab2 (diff)
Changing method profile for other event queueing
It wasn't clear in the first refactor if this was necessary, but doing the performance optimization made it clear it was. Signed-off-by: Luke Kanies <luke@reductivelabs.com>
-rw-r--r--lib/puppet/transaction/event_manager.rb10
-rwxr-xr-xspec/unit/transaction/event_manager.rb18
2 files changed, 13 insertions, 15 deletions
diff --git a/lib/puppet/transaction/event_manager.rb b/lib/puppet/transaction/event_manager.rb
index 24e577803..9c5c166c4 100644
--- a/lib/puppet/transaction/event_manager.rb
+++ b/lib/puppet/transaction/event_manager.rb
@@ -51,23 +51,21 @@ class Puppet::Transaction::EventManager
next unless method = edge.callback
next unless edge.target.respond_to?(method)
- list.each do |e|
- queue_event_for_resource(resource, edge.target, method, e)
- end
+ queue_events_for_resource(resource, edge.target, method, list)
end
if resource.self_refresh? and ! resource.deleting?
- queue_event_for_resource(resource, resource, :refresh, event)
+ queue_events_for_resource(resource, resource, :refresh, [event])
end
end
end
- def queue_event_for_resource(source, target, callback, event)
+ def queue_events_for_resource(source, target, callback, events)
source.info "Scheduling #{callback} of #{target}"
@event_queues[target] ||= {}
@event_queues[target][callback] ||= []
- @event_queues[target][callback] << event
+ @event_queues[target][callback] += events
end
def queued_events(resource)
diff --git a/spec/unit/transaction/event_manager.rb b/spec/unit/transaction/event_manager.rb
index f808377ee..6b9fe0345 100755
--- a/spec/unit/transaction/event_manager.rb
+++ b/spec/unit/transaction/event_manager.rb
@@ -46,8 +46,8 @@ describe Puppet::Transaction::EventManager do
@graph.expects(:matching_edges).with { |event, resource| event == @event }.returns [edge1, edge2]
- @manager.expects(:queue_event_for_resource).with(@resource, edge1.target, edge1.callback, @event)
- @manager.expects(:queue_event_for_resource).with(@resource, edge2.target, edge2.callback, @event)
+ @manager.expects(:queue_events_for_resource).with(@resource, edge1.target, edge1.callback, [@event])
+ @manager.expects(:queue_events_for_resource).with(@resource, edge2.target, edge2.callback, [@event])
@manager.queue_events(@resource, [@event])
end
@@ -57,7 +57,7 @@ describe Puppet::Transaction::EventManager do
@resource.expects(:self_refresh?).returns true
@resource.expects(:deleting?).returns false
- @manager.expects(:queue_event_for_resource).with(@resource, @resource, :refresh, @event)
+ @manager.expects(:queue_events_for_resource).with(@resource, @resource, :refresh, [@event])
@manager.queue_events(@resource, [@event])
end
@@ -67,7 +67,7 @@ describe Puppet::Transaction::EventManager do
@resource.expects(:self_refresh?).returns false
@resource.stubs(:deleting?).returns false
- @manager.expects(:queue_event_for_resource).never
+ @manager.expects(:queue_events_for_resource).never
@manager.queue_events(@resource, [@event])
end
@@ -77,7 +77,7 @@ describe Puppet::Transaction::EventManager do
@resource.expects(:self_refresh?).returns true
@resource.expects(:deleting?).returns true
- @manager.expects(:queue_event_for_resource).never
+ @manager.expects(:queue_events_for_resource).never
@manager.queue_events(@resource, [@event])
end
@@ -87,7 +87,7 @@ describe Puppet::Transaction::EventManager do
@graph.expects(:matching_edges).returns [edge1]
- @manager.expects(:queue_event_for_resource).never
+ @manager.expects(:queue_events_for_resource).never
@manager.queue_events(@resource, [@event])
end
@@ -97,7 +97,7 @@ describe Puppet::Transaction::EventManager do
@graph.expects(:matching_edges).returns [edge1]
- @manager.expects(:queue_event_for_resource).never
+ @manager.expects(:queue_events_for_resource).never
@manager.queue_events(@resource, [@event])
end
@@ -117,7 +117,7 @@ describe Puppet::Transaction::EventManager do
target = stub("target")
2.times do |i|
- @manager.queue_event_for_resource(stub("source", :info => nil), target, "callback#{i}", ["event#{i}"])
+ @manager.queue_events_for_resource(stub("source", :info => nil), target, "callback#{i}", ["event#{i}"])
end
@manager.queued_events(target) { |callback, events| }
@@ -128,7 +128,7 @@ describe Puppet::Transaction::EventManager do
source = stub 'source'
source.expects(:info)
- @manager.queue_event_for_resource(source, target, "callback", ["event"])
+ @manager.queue_events_for_resource(source, target, "callback", ["event"])
@manager.queued_events(target) { |callback, events| }
end