Added store management to eoPopEvalFunc.

This commit is contained in:
Benjamin Bouvier 2012-07-04 10:53:57 +02:00
commit 603268b053
5 changed files with 148 additions and 62 deletions

View file

@ -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 );
}
};
}
}