Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MSG_process_get_data(): don't segfault if there the process has been cleaned up
[simgrid.git] / src / simix / smx_private.h
index 74f60d1..9576a92 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2010, 2012-2014. The SimGrid Team.
+/* Copyright (c) 2007-2010, 2012-2015. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
 #include "popping_private.h"
 #include "smx_synchro_private.h"
 
+SG_BEGIN_DECL()
+
 /* Define only for SimGrid benchmarking purposes */
 //#define TIME_BENCH_PER_SR     /* this aims at measuring the time spent in each scheduling round per each thread. The code is thus run in sequential to bench separately each SSR */
 //#define TIME_BENCH_AMDAHL     /* this aims at measuring the porting of time that could be parallelized at maximum (to get the optimal speedup by applying the amdahl law). */
@@ -45,6 +47,7 @@ typedef struct s_smx_global {
   xbt_dict_t registered_functions;
   smx_creation_func_t create_process_function;
   void_pfn_smxprocess_t_smxprocess_t kill_process_function;
+  /** Callback used when killing a SMX_process */
   void_pfn_smxprocess_t cleanup_process_function;
   xbt_mallocator_t synchro_mallocator;
   void_pfn_smxhost_t autorestart;
@@ -60,13 +63,7 @@ extern unsigned long simix_process_maxpid;
 
 extern xbt_dict_t watched_hosts_lib;
 
-#ifdef __cplusplus
-extern "C" {
-#endif
 XBT_PUBLIC(void) SIMIX_clean(void);
-#ifdef __cplusplus
-}
-#endif
 
 /******************************** Exceptions *********************************/
 /** @brief Ask to the provided simix process to raise the provided exception */
@@ -193,9 +190,7 @@ typedef struct s_smx_synchro {
   int latency_limited;
 #endif
 
-#ifdef HAVE_TRACING
   char *category;                     /* simix action category for instrumentation */
-#endif
 } s_smx_synchro_t;
 
 void SIMIX_context_mod_init(void);
@@ -226,6 +221,7 @@ smx_context_t SIMIX_context_get_current(void);
 void SIMIX_ctx_thread_factory_init(smx_context_factory_t *factory);
 void SIMIX_ctx_sysv_factory_init(smx_context_factory_t *factory);
 void SIMIX_ctx_raw_factory_init(smx_context_factory_t *factory);
+void SIMIX_ctx_boost_factory_init(smx_context_factory_t *factory);
 
 /* ****************************** */
 /* context manipulation functions */
@@ -333,4 +329,6 @@ XBT_PUBLIC(int) SIMIX_process_get_maxpid(void);
 
 void SIMIX_post_create_environment(void);
 
+SG_END_DECL()
+
 #endif