From 6451e1d37f737d2bfbf12e4fc70bbb8ca3fa22df Mon Sep 17 00:00:00 2001
From: Leo Gordon <lg4@ebi.ac.uk>
Date: Wed, 1 Oct 2014 11:03:56 +0100
Subject: [PATCH] API change: turn log_buffer into an array instead of a
 growing string

---
 modules/Bio/EnsEMBL/Hive/Scheduler.pm | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/modules/Bio/EnsEMBL/Hive/Scheduler.pm b/modules/Bio/EnsEMBL/Hive/Scheduler.pm
index ac115eb68..714a59e9a 100644
--- a/modules/Bio/EnsEMBL/Hive/Scheduler.pm
+++ b/modules/Bio/EnsEMBL/Hive/Scheduler.pm
@@ -58,7 +58,7 @@ sub schedule_workers_resync_if_necessary {
 
     my ($workers_to_submit_by_meadow_type_rc_name, $total_extra_workers_required, $log_buffer)
         = schedule_workers($queen, $submit_capacity, $default_meadow_type, $list_of_analyses, $meadow_capacity_limiter_hashed_by_type, $analysis_id2rc_name);
-    print $log_buffer;
+    print join("\n", @$log_buffer, '');
 
     unless( $total_extra_workers_required ) {
         print "\nScheduler: according to analysis_stats no workers are required... let's see if resync can fix it.\n" ;
@@ -90,7 +90,7 @@ sub schedule_workers_resync_if_necessary {
 
         ($workers_to_submit_by_meadow_type_rc_name, $total_extra_workers_required, $log_buffer)
             = schedule_workers($queen, $submit_capacity, $default_meadow_type, $list_of_analyses, $meadow_capacity_limiter_hashed_by_type, $analysis_id2rc_name);
-        print $log_buffer;
+        print join("\n", @$log_buffer, '');
     }
 
         # adjustment for pending workers:
@@ -152,7 +152,7 @@ sub schedule_workers {
         # the pre-pending-adjusted outcome will be stored here:
     my %workers_to_submit_by_meadow_type_rc_name    = ();
     my $total_extra_workers_required                = 0;
-    my $log_buffer                                  = '';
+    my @log_buffer                                  = ();
 
     my $submit_capacity_limiter                     = Bio::EnsEMBL::Hive::Limiter->new( 'Max number of Workers scheduled this time', $submit_capacity );
     my $queen_capacity_limiter                      = Bio::EnsEMBL::Hive::Limiter->new( 'Total reciprocal capacity of the Hive', 1.0 - $queen->db->get_RoleAdaptor->get_hive_current_load() );
@@ -209,17 +209,17 @@ sub schedule_workers {
         if($analysis_id2rc_name) {
             my $this_rc_name    = $analysis_id2rc_name->{ $analysis_stats->analysis_id };
             $workers_to_submit_by_meadow_type_rc_name{ $this_meadow_type }{ $this_rc_name } += $extra_workers_this_analysis;
-            $log_buffer .= $analysis_stats->toString . "\n";
-            $log_buffer .= sprintf("Before checking the Valley for pending jobs, Scheduler allocated $extra_workers_this_analysis x $this_meadow_type:$this_rc_name extra workers for '%s' [%.4f hive_load remaining]\n",
-                $analysis->logic_name,
-                $queen_capacity_limiter->available_capacity,
-            );
+            push @log_buffer, $analysis_stats->toString;
+            push @log_buffer, sprintf("Before checking the Valley for pending jobs, Scheduler allocated $extra_workers_this_analysis x $this_meadow_type:$this_rc_name extra workers for '%s' [%.4f hive_load remaining]\n",
+                                $analysis->logic_name,
+                                $queen_capacity_limiter->available_capacity,
+                            );
         } else {
             return $analysis_stats;     # FIXME: returns data in different format in "suggest analysis" mode
         }
     }
 
-    return (\%workers_to_submit_by_meadow_type_rc_name, $total_extra_workers_required, $log_buffer);
+    return (\%workers_to_submit_by_meadow_type_rc_name, $total_extra_workers_required, \@log_buffer);
 }
 
 
-- 
GitLab