A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Alternative implementation or parmap with busy waits instead of futexes
[simgrid.git]
/
include
/
simix
/
context.h
diff --git
a/include/simix/context.h
b/include/simix/context.h
index
1cc8dd4
..
367acf2
100644
(file)
--- a/
include/simix/context.h
+++ b/
include/simix/context.h
@@
-10,6
+10,7
@@
#define _SIMIX_CONTEXT_H
#include "xbt/swag.h"
#define _SIMIX_CONTEXT_H
#include "xbt/swag.h"
+#include "xbt/parmap.h"
#include "simix/datatypes.h"
#include "simgrid_config.h"
#include "simix/datatypes.h"
#include "simgrid_config.h"
@@
-33,10
+34,9
@@
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_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_dynar_t processes
);
+typedef void (*smx_pfn_context_runall_t) (
void
);
typedef smx_context_t (*smx_pfn_context_self_t) (void);
typedef void* (*smx_pfn_context_get_data_t) (smx_context_t context);
typedef smx_context_t (*smx_pfn_context_self_t) (void);
typedef void* (*smx_pfn_context_get_data_t) (smx_context_t context);
-typedef int (*smx_pfn_context_get_thread_id) (void);
/* interface of the context factories */
typedef struct s_smx_context_factory {
/* interface of the context factories */
typedef struct s_smx_context_factory {
@@
-49,11
+49,8
@@
typedef struct s_smx_context_factory {
smx_pfn_context_runall_t runall;
smx_pfn_context_self_t self;
smx_pfn_context_get_data_t get_data;
smx_pfn_context_runall_t runall;
smx_pfn_context_self_t self;
smx_pfn_context_get_data_t get_data;
- smx_pfn_context_get_thread_id get_thread_id;
} s_smx_context_factory_t;
} s_smx_context_factory_t;
-
-
/* 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;
/* 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;
@@
-76,11
+73,11
@@
extern smx_context_t smx_current_context;
typedef struct s_smx_context {
s_xbt_swag_hookup_t hookup;
xbt_main_func_t code;
typedef struct s_smx_context {
s_xbt_swag_hookup_t hookup;
xbt_main_func_t code;
- int argc;
- char **argv;
void_pfn_smxprocess_t cleanup_func;
void_pfn_smxprocess_t cleanup_func;
- int iwannadie:1;
void *data; /* Here SIMIX stores the smx_process_t containing the context */
void *data; /* Here SIMIX stores the smx_process_t containing the context */
+ char **argv;
+ int argc;
+ int iwannadie:1;
} s_smx_ctx_base_t;
/* methods of this class */
} s_smx_ctx_base_t;
/* methods of this class */
@@
-97,14
+94,15
@@
void smx_ctx_base_free(smx_context_t context);
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);
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);
-int smx_ctx_base_get_thread_id(void);
/* parallelism */
/* parallelism */
-XBT_INLINE void SIMIX_context_set_nthreads(int nb_threads);
-XBT_INLINE int SIMIX_context_get_nthreads(void);
XBT_INLINE int SIMIX_context_is_parallel(void);
XBT_INLINE int SIMIX_context_is_parallel(void);
-XBT_INLINE void SIMIX_context_set_parallel_threshold(int threshold);
+XBT_INLINE int SIMIX_context_get_nthreads(void);
+XBT_INLINE void SIMIX_context_set_nthreads(int nb_threads);
XBT_INLINE int SIMIX_context_get_parallel_threshold(void);
XBT_INLINE int SIMIX_context_get_parallel_threshold(void);
+XBT_INLINE void SIMIX_context_set_parallel_threshold(int threshold);
+XBT_INLINE e_xbt_parmap_mode_t SIMIX_context_get_parallel_mode(void);
+XBT_INLINE void SIMIX_context_set_parallel_mode(e_xbt_parmap_mode_t mode);
SG_END_DECL()
SG_END_DECL()