diff --git a/src/algorithm/CNDFS.cpp b/src/algorithm/CNDFS.cpp index c983e66022f572224c56b62a8ca6eb947414fd0e..9e095d4589d34956a6094223130fa26453862d22 100644 --- a/src/algorithm/CNDFS.cpp +++ b/src/algorithm/CNDFS.cpp @@ -30,6 +30,9 @@ CNDFS::~CNDFS() { mlThread[i]->join(); delete mlThread[i]; } + // Liberate dynamic allocated memory for synchropnized product + for (const auto & elt : mlBuiltStates) + delete elt; } // Create threads @@ -174,6 +177,7 @@ void CNDFS::computeSuccessors(myState_t *state) { //Perform the dfsBlue void CNDFS::dfsBlue(myState_t *state, vector<myState_t *> &Rp, uint8_t idThread) { state->cyan[idThread] = true; + computeSuccessors(state); for (const auto &succ: state->new_successors) { if (!succ.first->blue && !succ.first->cyan[idThread]) { dfsBlue(succ.first, Rp, idThread);