don't load all results at once before writing
Robert 'phaylon' Sedlacek [Fri, 27 Jul 2012 21:11:34 +0000 (21:11 +0000)]
lib/System/Introspector/State.pm

index 8141d80..e2b15f1 100644 (file)
@@ -26,15 +26,10 @@ sub gather {
             push @waiting, [$host, $self->fetch($host, $group)];
         }
         $self->_log("Now waiting for results");
-        my @results = map {
+        for my $wait (@waiting) {
             my ($host, @futures) = @$_;
-            my $done = [$host, await_all @futures];
+            my @data = await_all @futures;
             $self->_log("Received all from group '$group' on '$host'");
-            $done;
-        } @waiting;
-        $self->_log("All gathered for group '$group'");
-        for my $result (@results) {
-            my ($host, @data) = @$result;
             $self->_store($host, $group, +{ map %$_, @data });
         }
     }