diff --git a/src/AbstractObjects/OpalData.h b/src/AbstractObjects/OpalData.h index bcb83da83079d470a667f502f0062e3e9690c627..3f7b2b4c72153b3740566de376e1a5bbafa6b0ec 100644 --- a/src/AbstractObjects/OpalData.h +++ b/src/AbstractObjects/OpalData.h @@ -258,7 +258,7 @@ public: private: static bool isInstantiated; - static OpalData* instance; + static OpalData* instance; // \todo should be a smart pointer and we then should get ridd of deleteInstance static std::stack<OpalData*> stashedInstances; OpalData(); diff --git a/src/Main.cpp b/src/Main.cpp index 8fbafa2ec5fccda61a797b09449f65ba294c863e..78fdd2d1592a9b2b12a2d4ba282e4552f51861e6 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -176,7 +176,8 @@ int main(int argc, char* argv[]) { if (is) { *gmsg << "Reading startup file '" << startup << "'" << endl; - parser.run(is); + parser. + run(is); *gmsg << "Finished reading startup file." << endl; } FileStream::setEcho(Options::echo); @@ -379,7 +380,9 @@ int main(int argc, char* argv[]) { } catch (EarlyLeaveException& ex) { // do nothing here - } catch (OpalException& ex) { + } + + catch (OpalException& ex) { Inform errorMsg("Error", std::cerr, INFORM_ALL_NODES); errorMsg << "\n*** User error detected by function \"" << ex.where() << "\"\n"; // stat->printWhere(errorMsg, true); @@ -489,10 +492,14 @@ int main(int argc, char* argv[]) { IpplTimings::print( std::string("timing.dat"), OpalData::getInstance()->getProblemCharacteristicValues()); + ippl::Comm->barrier(); Fieldmap::clearDictionary(); - OpalData::deleteInstance(); + + // \todo we should not need this OpalData::deleteInstance(); + delete gmsg; + ippl::finalize(); return 0; } }