Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into mq
[simgrid.git] / include / simgrid / Exception.hpp
index e580ea9..4b14e56 100644 (file)
@@ -3,11 +3,12 @@
 /* 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. */
 
-/* This file defines all possible exception that could occur in a SimGrid library. */
+/* This file defines all possible exceptions that could occur in a SimGrid library. */
 
 #ifndef SIMGRID_EXCEPTIONS_HPP
 #define SIMGRID_EXCEPTIONS_HPP
 
+#include <simgrid/actor.h>
 #include <xbt/backtrace.hpp>
 #include <xbt/ex.h>
 #include <xbt/string.hpp>
@@ -31,7 +32,7 @@ class ThrowPoint {
 public:
   ThrowPoint() = default;
   explicit ThrowPoint(const char* file, int line, const char* function, Backtrace&& bt, std::string&& actor_name,
-                      int pid)
+                      aid_t pid)
       : file_(file)
       , line_(line)
       , function_(function)
@@ -46,12 +47,13 @@ public:
   const char* function_ = nullptr;
   Backtrace backtrace_;
   std::string procname_ = ""; /**< Name of the process who thrown this */
-  int pid_              = 0;  /**< PID of the process who thrown this */
+  aid_t pid_            = 0;  /**< PID of the process who thrown this */
 };
 
 /** Create a ThrowPoint with (__FILE__, __LINE__, __func__) */
 #define XBT_THROW_POINT                                                                                                \
-  ::simgrid::xbt::ThrowPoint(__FILE__, __LINE__, __func__, simgrid::xbt::Backtrace(), xbt_procname(), xbt_getpid())
+  ::simgrid::xbt::ThrowPoint(__FILE__, __LINE__, __func__, simgrid::xbt::Backtrace(), sg_actor_self_get_name(),        \
+                             sg_actor_self_get_pid())
 
 class XBT_PUBLIC ImpossibleError : public std::logic_error {
 public:
@@ -183,7 +185,8 @@ public:
   const char* what() const noexcept { return msg_.c_str(); }
 
   XBT_ATTRIB_NORETURN static void do_throw();
-  static bool try_n_catch(const std::function<void()>& try_block);
+  XBT_ATTRIB_DEPRECATED_v338("Please manifest if you actually need this function") static bool try_n_catch(
+      const std::function<void()>& try_block);
 
 private:
   std::string msg_ = "Actor killed.";