On Sep 15, 2009, at 10:50 AM, ruya wrote:
SearchFunctor has a virtual destructor, the derivees have empty destructor. MemHandler is just a helper does not store anything.
Here is my guess as to what happens: SPtr points to a SearchFunctor that has been deallocated. The generators were never deleted and can still be used, but the underlying engine got destroyed. Your code contains memory leaks, and could be simplified a lot. Matthias
class SearchFunctor{ protected: typedef SmartPtr<SType> SPtr; typedef typename SType::Domain Domain; typedef typename SType::DPtr DPtr; typedef typename Domain::MType MType; typedef typename Domain::MPtr MPtr; typedef typename Domain::EPtr EPtr; typedef typename Domain::RPtr RPtr; typedef vector<typename SType::MPtr> MVector; typedef typename SType::DataType DataType; typedef boost::mt19937 base_generator_type; typedef boost::variate_generator
> GeneratorI; typedef PrivateMemP::ObjectType::_ACTIVE,MemP MemHandler; public: virtual SPtr operator()( SPtr s, int iter ) = 0;
SearchFunctor(){ memh = MemHandler(); generator1 = base_generator_type(MASTER_SEED+13); uni_dist1 = boost::uniform_real<>(0,1); uniEmp = new GeneratorI(generator1, uni_dist1); generator2 = base_generator_type(MASTER_SEED+17); uni_dist2 = boost::uniform_real<>(0,1); uniRes = new GeneratorI(generator2, uni_dist2); } protected: virtual ~SearchFunctor(){}
base_generator_type generator1, generator2; boost::uniform_real<> uni_dist1, uni_dist2; GeneratorI* uniEmp; GeneratorI* uniRes; MemHandler memh; };
Matthias Troyer-2 wrote:
On Sep 14, 2009, at 9:40 AM, ruya wrote:
Hi
Matthias Troyer-2 wrote:
I would write this very differently, and can give you a better version that should have no problems, but could you please send me the definition of GeneratorI first?
Sorry about that, the missing typedefs at SearchFunctor:
typedef boost::mt19937 base_generator_type; typedef boost::variate_generator
> GeneratorI; Another question: what does the destructor of your class look like? Can you send the full class?
Matthias
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- View this message in context: http://www.nabble.com/Mersenne-twister-problem-tp25382114p25450374.html Sent from the Boost - Users mailing list archive at Nabble.com.
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users