Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / src / xbt / exception.cpp
index 49f6188..5483ae5 100644 (file)
@@ -4,8 +4,13 @@
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
+#include <cstdlib>
+
+#include <atomic>
 #include <exception>
+#include <string>
 #include <typeinfo>
+#include <vector>
 #include <memory>
 #include <mutex>
 
@@ -22,7 +27,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_exception, xbt, "Exceptions");
 namespace simgrid {
 namespace xbt {
 
-WithContextException::~WithContextException() {}
+WithContextException::~WithContextException() = default;
 
 void logException(
   e_xbt_log_priority_t prio,
@@ -85,7 +90,7 @@ static void handler()
   // an uncaught exception
   static std::atomic_flag lock = ATOMIC_FLAG_INIT;
   if (lock.test_and_set()) {
-    XBT_ERROR("Multiple uncaught exceptions");
+    XBT_ERROR("Handling an exception raised an exception. Bailing out.");
     std::abort();
   }
 
@@ -127,8 +132,3 @@ void installExceptionHandler()
 
 }
 }
-
-void xbt_set_terminate()
-{
-  simgrid::xbt::installExceptionHandler();
-}