Added store management to eoPopEvalFunc.
This commit is contained in:
parent
24c29db6f3
commit
603268b053
5 changed files with 148 additions and 62 deletions
|
|
@ -24,6 +24,11 @@ namespace eo
|
|||
d->comm.recv( d->masterRank, Channel::Commands, order );
|
||||
}
|
||||
}
|
||||
|
||||
~ProcessTaskParallelEval()
|
||||
{
|
||||
delete _wrapped;
|
||||
}
|
||||
};
|
||||
|
||||
template< class EOT >
|
||||
|
|
@ -33,15 +38,20 @@ namespace eo
|
|||
|
||||
ParallelEvalStore(
|
||||
eoUF<EOT&, void> & _proc,
|
||||
std::vector<EOT>& _pop,
|
||||
int _masterRank,
|
||||
// long _maxTime = 0,
|
||||
int _packetSize = 1
|
||||
) :
|
||||
ParallelApplyStore< EOT >( _proc, _pop, _masterRank, _packetSize )
|
||||
ParallelApplyStore< EOT >( _proc, *( new std::vector<EOT> ), _masterRank, _packetSize )
|
||||
// FIXME memory leak because of vector ==> use const correctness
|
||||
{
|
||||
wrapProcessTask( new ProcessTaskParallelEval<EOT> );
|
||||
}
|
||||
|
||||
void data( std::vector<EOT>& _pop )
|
||||
{
|
||||
ParallelApplyStore<EOT>::_data.init( _pop );
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace eo
|
|||
{
|
||||
ParallelApplyData(
|
||||
eoUF<EOT&, void> & _proc,
|
||||
std::vector<EOT>& _pop,
|
||||
std::vector<EOT> & _pop,
|
||||
int _masterRank,
|
||||
// long _maxTime = 0,
|
||||
int _packetSize
|
||||
|
|
@ -35,6 +35,14 @@ namespace eo
|
|||
tempArray = new EOT[ _packetSize ];
|
||||
}
|
||||
|
||||
void init( std::vector<EOT>& _pop )
|
||||
{
|
||||
index = 0;
|
||||
size = _pop.size();
|
||||
data = _pop;
|
||||
assignedTasks.clear();
|
||||
}
|
||||
|
||||
~ParallelApplyData()
|
||||
{
|
||||
delete [] tempArray;
|
||||
|
|
@ -180,7 +188,7 @@ namespace eo
|
|||
|
||||
ParallelApplyData<EOT>* data() { return &_data; }
|
||||
|
||||
~ParallelApplyStore()
|
||||
virtual ~ParallelApplyStore()
|
||||
{
|
||||
delete _stf;
|
||||
delete _hrf;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue