Ho un problema di race condition qui:
codice:bool clusterExists(std::string& infoSet) { bool exists {false}; #pragma omp critical exists = mInfoMap.find(infoSet) != mInfoMap.end(); return exists; } InfoSet* get(std::string& infoSet, const int& numActs, Env::History& actions) { if (numActs > 0 && mCreateNotExists && !clusterExists(infoSet)) { #pragma omp critical { mInfoMap.insert({infoSet, new InfoSet {numActs}}); for (auto& a : actions) { mInfoMap[infoSet]->insertActStr(Env::ActToStr(std::get<1>(a)), std::get<2>(a)); } } } return mInfoMap[infoSet]; }
Penso che il problema sia su "mInfoMap.insert({infoSet, new InfoSet {numActs}});"
Ma non ne sono certo.
Dove sbaglio?

Rispondi quotando