X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b3d9680ac65d8bdd8e267aed69fc32a5abab12d7..da40a399ba4a195c4c15fb4b9a74ceb48b843df2:/src/simix/private.h diff --git a/src/simix/private.h b/src/simix/private.h index b130cf9337..d58d6e5b62 100644 --- a/src/simix/private.h +++ b/src/simix/private.h @@ -58,7 +58,7 @@ extern SIMIX_Global_t simix_global; @ingroup m_datatypes_management_details @{ */ typedef struct s_smx_process { s_xbt_swag_hookup_t process_hookup; - s_xbt_swag_hookup_t synchro_hookup; + s_xbt_swag_hookup_t synchro_hookup; /* process_to_run or mutex->sleeping and co */ s_xbt_swag_hookup_t host_proc_hookup; s_xbt_swag_hookup_t destroy_hookup; @@ -164,7 +164,6 @@ typedef struct s_smx_comm { void SIMIX_network_copy_data(smx_comm_t comm); smx_comm_t SIMIX_communication_new(smx_comm_type_t type); -void SIMIX_communication_destroy(smx_comm_t comm); static inline void SIMIX_communication_use(smx_comm_t comm); static inline void SIMIX_communication_wait_for_completion(smx_comm_t comm, double timeout); static inline void SIMIX_rdv_push(smx_rdv_t rdv, smx_comm_t comm); @@ -265,15 +264,13 @@ typedef void (*smx_pfn_context_stop_t) (smx_context_t); typedef void (*smx_pfn_context_suspend_t) (smx_context_t context); /* function used to resume the current context */ -typedef void (*smx_pfn_context_resume_t) (smx_context_t old_context, - smx_context_t new_context); +typedef void (*smx_pfn_context_resume_t) (smx_context_t new_context); /* interface of the context factories */ typedef struct s_smx_context_factory { smx_pfn_context_factory_create_context_t create_context; smx_pfn_context_factory_finalize_t finalize; smx_pfn_context_free_t free; - smx_pfn_context_start_t start; smx_pfn_context_stop_t stop; smx_pfn_context_suspend_t suspend; smx_pfn_context_resume_t resume; @@ -295,7 +292,7 @@ void SIMIX_ctx_thread_factory_init(smx_context_factory_t * factory); void SIMIX_ctx_sysv_factory_init(smx_context_factory_t * factory); void SIMIX_ctx_lua_factory_init(smx_context_factory_t * factory); -void SIMIX_ctx_lua_factory_loadfile(const char *file); +void SIMIX_ctx_lua_factory_set_state(void *state); void SIMIX_ctx_java_factory_init(smx_context_factory_t * factory); @@ -332,8 +329,8 @@ void SIMIX_ctx_java_factory_init(smx_context_factory_t * factory); static inline smx_context_t SIMIX_context_new(xbt_main_func_t code, int argc, char** argv, void_f_pvoid_t cleanup_func, - void* cleanup_arg) -{ + void* cleanup_arg) { + return (*(simix_global->context_factory->create_context)) (code, argc, argv, cleanup_func, cleanup_arg); } @@ -343,27 +340,15 @@ static inline smx_context_t SIMIX_context_new(xbt_main_func_t code, int argc, * \param context the context to destroy * Argument must be stopped first -- runs in maestro context */ -static inline void SIMIX_context_free(smx_context_t context) -{ +static inline void SIMIX_context_free(smx_context_t context) { (*(simix_global->context_factory->free)) (context); } -/** - * \brief prepares aa context to be run - * \param context the context to start - * It will however run effectively only when calling #SIMIX_process_schedule - */ -static inline void SIMIX_context_start(smx_context_t context) -{ - (*(simix_global->context_factory->start)) (context); -} - /** * \brief stops the execution of a context * \param context to stop */ -static inline void SIMIX_context_stop(smx_context_t context) -{ +static inline void SIMIX_context_stop(smx_context_t context) { (*(simix_global->context_factory->stop)) (context); } @@ -372,10 +357,9 @@ static inline void SIMIX_context_stop(smx_context_t context) \param old_context the actual context from which is resuming \param new_context the context to resume */ -static inline void SIMIX_context_resume(smx_context_t old_context, - smx_context_t new_context) +static inline void SIMIX_context_resume(smx_context_t new_context) { - (*(simix_global->context_factory->resume)) (old_context, new_context); + (*(simix_global->context_factory->resume)) (new_context); } /**