summaryrefslogtreecommitdiff
path: root/src/explicitsimulation.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/explicitsimulation.h')
-rw-r--r--src/explicitsimulation.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/explicitsimulation.h b/src/explicitsimulation.h
index c2aeed9..7713c71 100644
--- a/src/explicitsimulation.h
+++ b/src/explicitsimulation.h
@@ -31,6 +31,9 @@ namespace Genetic
31 protected: 31 protected:
32 void updateFitness(); 32 void updateFitness();
33 void setFitness( Genetic::PhenotypeId, double dFitness ); 33 void setFitness( Genetic::PhenotypeId, double dFitness );
34 void workDone();
35 void setRunning( bool b );
36 bool isRunning();
34 37
35 protected: 38 protected:
36 Population xPop; 39 Population xPop;
@@ -49,8 +52,12 @@ namespace Genetic
49 PhenotypeId uMaxFitness; 52 PhenotypeId uMaxFitness;
50 53
51 Bu::Mutex mFitness; 54 Bu::Mutex mFitness;
55 Bu::Condition cWorkDone;
52 typedef Bu::SynchroQueue<Phenotype *> WorkQueue; 56 typedef Bu::SynchroQueue<Phenotype *> WorkQueue;
53 WorkQueue qWork; 57 WorkQueue qWork;
58 int iWorkDone;
59 bool bRunning;
60 Bu::Mutex mRunning;
54 61
55 class Processor : public Bu::Thread 62 class Processor : public Bu::Thread
56 { 63 {
@@ -59,8 +66,6 @@ namespace Genetic
59 WorkQueue &rqWork, int iId ); 66 WorkQueue &rqWork, int iId );
60 virtual ~Processor(); 67 virtual ~Processor();
61 68
62 void setRunning( bool b ) { bRunning = b; }
63
64 protected: 69 protected:
65 virtual void run(); 70 virtual void run();
66 71
@@ -68,7 +73,6 @@ namespace Genetic
68 FitnessFunction *pFunc; 73 FitnessFunction *pFunc;
69 WorkQueue &rqWork; 74 WorkQueue &rqWork;
70 int iId; 75 int iId;
71 bool bRunning;
72 }; 76 };
73 77
74 typedef Bu::List<Processor *> ProcessorList; 78 typedef Bu::List<Processor *> ProcessorList;