[Avida-cvs] [avida-svn] r709 - development/source/analyze

kaben@myxo.css.msu.edu kaben at myxo.css.msu.edu
Sat May 27 00:05:19 PDT 2006


Author: kaben
Date: 2006-05-27 03:05:19 -0400 (Sat, 27 May 2006)
New Revision: 709

Modified:
   development/source/analyze/cAnalyzeJobQueue.cc
Log:

Altered cAnalyzeJobQueue::Execute() to prevent warning-treated-as-error
under debug-mode builds with gcc: the problem was declaration of the
variable 'workers' as a variable-length array. Changed 'workers' from
type cAnalyzeJobWorker*[] to type tArray<cAnalyzeJobWorker*>.



Modified: development/source/analyze/cAnalyzeJobQueue.cc
===================================================================
--- development/source/analyze/cAnalyzeJobQueue.cc	2006-05-26 19:52:57 UTC (rev 708)
+++ development/source/analyze/cAnalyzeJobQueue.cc	2006-05-27 07:05:19 UTC (rev 709)
@@ -12,6 +12,9 @@
 #include "cAnalyzeJobWorker.h"
 #include "cWorld.h"
 #include "cWorldDriver.h"
+#include "tArray.h"
+
+
 #include "defs.h"
 
 #include <iostream>
@@ -37,15 +40,18 @@
 void cAnalyzeJobQueue::Execute()
 {
   const int num_workers = m_world->GetConfig().MT_CONCURRENCY.Get();
-  cAnalyzeJobWorker* workers[num_workers];
-  
+  tArray<cAnalyzeJobWorker*> workers(num_workers);
+
   if (m_world->GetConfig().VERBOSITY.Get() >= VERBOSE_DETAILS)
     m_world->GetDriver().NotifyComment("Going Multithreaded...");
-  
+
   for (int i = 0; i < num_workers; i++) {
     workers[i] = new cAnalyzeJobWorker(this);
     workers[i]->Start();
   }
 
-  for (int i = 0; i < num_workers; i++) workers[i]->Join();
+  for (int i = 0; i < num_workers; i++) {
+    workers[i]->Join();
+    delete workers[i];
+  }
 }




More information about the Avida-cvs mailing list