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
Keep an int parameter to SIMIX_context_get_nthreads
[simgrid.git]
/
src
/
simix
/
private.h
diff --git
a/src/simix/private.h
b/src/simix/private.h
index
7b2d98c
..
2897aeb
100644
(file)
--- a/
src/simix/private.h
+++ b/
src/simix/private.h
@@
-19,6
+19,7
@@
#include "instr/instr_private.h"
#include "process_private.h"
#include "host_private.h"
#include "instr/instr_private.h"
#include "process_private.h"
#include "host_private.h"
+#include "io_private.h"
#include "network_private.h"
#include "smurf_private.h"
#include "synchro_private.h"
#include "network_private.h"
#include "smurf_private.h"
#include "synchro_private.h"
@@
-94,6
+95,8
@@
typedef struct s_smx_action {
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 */
+ void (*clean_fun)(void*); /* Function to clean the detached src_buf if something goes wrong */
+
/* Surf action data */
surf_action_t surf_comm; /* The Surf communication action encapsulated */
surf_action_t src_timeout; /* Surf's actions to instrument the timeouts */
/* Surf action data */
surf_action_t surf_comm; /* The Surf communication action encapsulated */
surf_action_t src_timeout; /* Surf's actions to instrument the timeouts */
@@
-123,6
+126,10
@@
typedef struct s_smx_action {
surf_action_t sleep;
} synchro;
surf_action_t sleep;
} synchro;
+ struct {
+ smx_host_t host;
+ surf_action_t surf_io;
+ } io;
};
#ifdef HAVE_LATENCY_BOUND_TRACKING
};
#ifdef HAVE_LATENCY_BOUND_TRACKING
@@
-197,8
+204,10
@@
static XBT_INLINE smx_context_t SIMIX_context_new(xbt_main_func_t code,
smx_process_t simix_process)
{
smx_process_t simix_process)
{
- return (*(simix_global->context_factory->create_context))
- (code, argc, argv, cleanup_func, simix_process);
+ return simix_global->context_factory->create_context(code,
+ argc, argv,
+ cleanup_func,
+ simix_process);
}
/**
}
/**
@@
-208,7
+217,7
@@
static XBT_INLINE smx_context_t SIMIX_context_new(xbt_main_func_t code,
*/
static XBT_INLINE void SIMIX_context_free(smx_context_t context)
{
*/
static XBT_INLINE void SIMIX_context_free(smx_context_t context)
{
-
(*(simix_global->context_factory->free))
(context);
+
simix_global->context_factory->free
(context);
}
/**
}
/**
@@
-217,7
+226,7
@@
static XBT_INLINE void SIMIX_context_free(smx_context_t context)
*/
static XBT_INLINE void SIMIX_context_stop(smx_context_t context)
{
*/
static XBT_INLINE void SIMIX_context_stop(smx_context_t context)
{
-
(*(simix_global->context_factory->stop))
(context);
+
simix_global->context_factory->stop
(context);
}
/**
}
/**
@@
-227,16
+236,15
@@
static XBT_INLINE void SIMIX_context_stop(smx_context_t context)
*/
static XBT_INLINE void SIMIX_context_suspend(smx_context_t context)
{
*/
static XBT_INLINE void SIMIX_context_suspend(smx_context_t context)
{
-
(*(simix_global->context_factory->suspend))
(context);
+
simix_global->context_factory->suspend
(context);
}
/**
}
/**
- \brief executes all the processes (in parallel if possible)
- \param processes the dynar of processes to execute
+ \brief Executes all the processes to run (in parallel if possible).
*/
*/
-static XBT_INLINE void SIMIX_context_runall(
xbt_dynar_t processes
)
+static XBT_INLINE void SIMIX_context_runall()
{
{
-
(*(simix_global->context_factory->runall)) (processes
);
+
simix_global->context_factory->runall(
);
}
/**
}
/**
@@
-245,7
+253,7
@@
static XBT_INLINE void SIMIX_context_runall(xbt_dynar_t processes)
static XBT_INLINE smx_context_t SIMIX_context_self(void)
{
if (simix_global && simix_global->context_factory != NULL) {
static XBT_INLINE smx_context_t SIMIX_context_self(void)
{
if (simix_global && simix_global->context_factory != NULL) {
- return
(*(simix_global->context_factory->self))
();
+ return
simix_global->context_factory->self
();
}
return NULL;
}
return NULL;
@@
-258,7
+266,7
@@
static XBT_INLINE smx_context_t SIMIX_context_self(void)
*/
static XBT_INLINE void* SIMIX_context_get_data(smx_context_t context)
{
*/
static XBT_INLINE void* SIMIX_context_get_data(smx_context_t context)
{
- return
(*(simix_global->context_factory->get_data))
(context);
+ return
simix_global->context_factory->get_data
(context);
}
XBT_PUBLIC(int) SIMIX_process_get_maxpid(void);
}
XBT_PUBLIC(int) SIMIX_process_get_maxpid(void);