Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
- Move simix_global->current_process to smx_current_context
[simgrid.git] / src / simix / smx_context_private.h
index fc577da..9e56c1a 100644 (file)
@@ -18,6 +18,7 @@ typedef void (*SIMIX_ctx_factory_initializer_t)(smx_context_factory_t *);
 extern SIMIX_ctx_factory_initializer_t factory_initializer_to_use;
 
 extern int _surf_parallel_contexts;
+smx_context_t smx_current_context;
 
 /* *********************** */
 /* Context type definition */
@@ -32,7 +33,7 @@ typedef struct s_smx_context {
   int argc;
   char **argv;
   void_pfn_smxprocess_t cleanup_func;
-  smx_process_t process;
+  void *data;   /* Here SIMIX stores the smx_process_t containing the context */
 } s_smx_ctx_base_t;
 /* methods of this class */
 void smx_ctx_base_factory_init(smx_context_factory_t * factory);
@@ -43,10 +44,11 @@ smx_ctx_base_factory_create_context_sized(size_t size,
                                           xbt_main_func_t code, int argc,
                                           char **argv,
                                           void_pfn_smxprocess_t cleanup,
-                                          smx_process_t process);
+                                          void* data);
 void smx_ctx_base_free(smx_context_t context);
 void smx_ctx_base_stop(smx_context_t context);
-smx_process_t smx_ctx_base_self(void);
+smx_context_t smx_ctx_base_self(void);
+void *smx_ctx_base_get_data(smx_context_t context);
 
 SG_END_DECL()
 #endif                          /* !_XBT_CONTEXT_PRIVATE_H */