Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make sure that MSG_process_get_PID() never raise an exception, even with invalid...
[simgrid.git] / src / msg / m_process.c
index 70f458b4a1a90a9c3037f6208de9558be0d4e59f..c3b04d11d38bb2deab41667610da16df94c655ac 100644 (file)
@@ -16,6 +16,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(msg_process, msg, "Logging specific to MSG (proc
 /** \defgroup m_process_management Management Functions of Agents
  *  \brief This section describes the agent structure of MSG
  *  (#m_process_t) and the functions for managing it.
+ */
+/** @addtogroup m_process_management
  *    \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Agents" --> \endhtmlonly
  * 
  *  We need to simulate many independent scheduling decisions, so
@@ -232,7 +234,10 @@ m_process_t MSG_process_from_PID(int PID)
  */
 int MSG_process_get_PID(m_process_t process)
 {
-  xbt_assert0(((process != NULL) && (process->simdata)), "Invalid parameters");
+  /* Do not raise an exception here: this function is used in the logs, 
+     and it will be called back by the exception handling stuff */
+  if (process == NULL || process->simdata == NULL)
+     return -1;
 
   return (((simdata_process_t) process->simdata)->PID);
 }