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 <[email protected]>
---
 lib/puppet/transaction/event_manager.rb |   10 ++++------
 spec/unit/transaction/event_manager.rb  |   18 +++++++++---------
 2 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/lib/puppet/transaction/event_manager.rb 
b/lib/puppet/transaction/event_manager.rb
index 24e5778..9c5c166 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 f808377..6b9fe03 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
-- 
1.6.1

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to