]> AND Public Git Repository - simgrid.git/blobdiff - include/simix/context.h
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cfg=contexts/parallel:nb is now the number of threads instead of a boolean
[simgrid.git] / include / simix / context.h
index c4af0a816007da3bb71358afa71a6e97d686a947..0ba2a6c1d56b516e7d90f28a35a438be579db56e 100644 (file)
@@ -6,8 +6,8 @@
 /* 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. */
 
-#ifndef _XBT_CONTEXT_H
-#define _XBT_CONTEXT_H
+#ifndef _SIMIX_CONTEXT_H
+#define _SIMIX_CONTEXT_H
 
 #include "xbt/swag.h"
 #include "simix/datatypes.h"
@@ -32,7 +32,7 @@ typedef void (*smx_pfn_context_free_t) (smx_context_t);
 typedef void (*smx_pfn_context_start_t) (smx_context_t);
 typedef void (*smx_pfn_context_stop_t) (smx_context_t);
 typedef void (*smx_pfn_context_suspend_t) (smx_context_t context);
-typedef void (*smx_pfn_context_runall_t) (xbt_swag_t processes);
+typedef void (*smx_pfn_context_runall_t) (xbt_dynar_t processes);
 typedef smx_context_t (*smx_pfn_context_self_t) (void);
 typedef void* (*smx_pfn_context_get_data_t) (smx_context_t context);
 
@@ -51,12 +51,12 @@ typedef struct s_smx_context_factory {
 
 
 
-/*Hack: let msg load directly the right factory */
-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;
+/* Hack: let msg load directly the right factory */
+typedef void (*smx_ctx_factory_initializer_t)(smx_context_factory_t*);
+extern smx_ctx_factory_initializer_t smx_factory_initializer_to_use;
+extern char* smx_context_factory_name;
+extern int smx_context_stack_size;
+extern smx_context_t smx_current_context;
 
 /* *********************** */
 /* Context type definition */
@@ -90,6 +90,11 @@ void smx_ctx_base_stop(smx_context_t context);
 smx_context_t smx_ctx_base_self(void);
 void *smx_ctx_base_get_data(smx_context_t context);
 
+/* parallelism */
+void SIMIX_context_set_parallel_threads(int nb_threads);
+int SIMIX_context_get_parallel_threads(void);
+int SIMIX_context_is_parallel(void);
+
 SG_END_DECL()
 
 #endif                          /* !_XBT_CONTEXT_H */