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
Fix unset variables issues
[simgrid.git]
/
src
/
simix
/
smx_private.h
diff --git
a/src/simix/smx_private.h
b/src/simix/smx_private.h
index
6e151d7
..
1130ff9
100644
(file)
--- a/
src/simix/smx_private.h
+++ b/
src/simix/smx_private.h
@@
-75,10
+75,6
@@
typedef struct s_smx_file {
surf_file_t surf_file;
} s_smx_file_t;
surf_file_t surf_file;
} s_smx_file_t;
-typedef struct s_smx_stat {
- s_file_stat_t surf_stat;
-} s_smx_stat_t;
-
/*********************************** Time ************************************/
/** @brief Timer datatype */
/*********************************** Time ************************************/
/** @brief Timer datatype */
@@
-136,6
+132,12
@@
typedef struct s_smx_action {
struct {
e_smx_comm_type_t type; /* Type of the communication (SIMIX_COMM_SEND or SIMIX_COMM_RECEIVE) */
smx_rdv_t rdv; /* Rendez-vous where the comm is queued */
struct {
e_smx_comm_type_t type; /* Type of the communication (SIMIX_COMM_SEND or SIMIX_COMM_RECEIVE) */
smx_rdv_t rdv; /* Rendez-vous where the comm is queued */
+
+#ifdef HAVE_MC
+ smx_rdv_t rdv_cpy; /* Copy of the rendez-vous where the comm is queued, MC needs it for DPOR
+ (comm.rdv set to NULL when the communication is removed from the mailbox
+ (used as garbage collector)) */
+#endif
int refcount; /* Number of processes involved in the cond */
int detached; /* If detached or not */
int refcount; /* Number of processes involved in the cond */
int detached; /* If detached or not */
@@
-258,7
+260,8
@@
static XBT_INLINE smx_context_t SIMIX_context_new(xbt_main_func_t code,
void_pfn_smxprocess_t cleanup_func,
smx_process_t simix_process)
{
void_pfn_smxprocess_t cleanup_func,
smx_process_t simix_process)
{
-
+ if (!simix_global)
+ xbt_die("simix is not initialized, please call MSG_init first");
return simix_global->context_factory->create_context(code,
argc, argv,
cleanup_func,
return simix_global->context_factory->create_context(code,
argc, argv,
cleanup_func,
@@
-299,7
+302,9
@@
static XBT_INLINE void SIMIX_context_suspend(smx_context_t context)
*/
static XBT_INLINE void SIMIX_context_runall(void)
{
*/
static XBT_INLINE void SIMIX_context_runall(void)
{
- simix_global->context_factory->runall();
+ if (!xbt_dynar_is_empty(simix_global->process_to_run)) {
+ simix_global->context_factory->runall();
+ }
}
/**
}
/**
@@
-310,7
+315,6
@@
static XBT_INLINE smx_context_t SIMIX_context_self(void)
if (simix_global && simix_global->context_factory) {
return simix_global->context_factory->self();
}
if (simix_global && simix_global->context_factory) {
return simix_global->context_factory->self();
}
-
return NULL;
}
return NULL;
}