X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/438767b311970c8a65b6a891b805e430fd2aeb3f..a3427ca7c9f8f2563bb982044e1082cc8f3cdd1e:/include/gras/process.h diff --git a/include/gras/process.h b/include/gras/process.h index 5a6d6b38d3..c19ee65599 100644 --- a/include/gras/process.h +++ b/include/gras/process.h @@ -10,9 +10,9 @@ #ifndef GRAS_PROCESS_H #define GRAS_PROCESS_H -#include "xbt/misc.h" /* BEGIN_DECL */ +#include "xbt/misc.h" /* SG_BEGIN_DECL */ -BEGIN_DECL() +SG_BEGIN_DECL() /* ************************************************************************** * Initializing the processes @@ -22,18 +22,33 @@ BEGIN_DECL() * * Perform the various intialisations needed by gras. Each process must run it */ -xbt_error_t gras_process_init(void); +void gras_process_init(void); /** * gras_process_exit: * * Frees the memory allocated by gras. Processes should run it */ -xbt_error_t gras_process_exit(void); +void gras_process_exit(void); /****************************************************************************/ /* Manipulating User Data */ /****************************************************************************/ + +/** \addtogroup GRAS_globals + * \brief Handling global variables so that it works on simulator. + * + * In GRAS, using globals is forbidden since the "processes" will + * sometimes run as a thread inside the same process (namely, in + * simulation mode). So, you have to put all globals in a structure, and + * let GRAS handle it. + * + * Use the \ref gras_userdata_new macro to create a new user data (or malloc it + * and use \ref gras_userdata_set yourself), and \ref gras_userdata_get to + * retrieve a reference to it. + */ +/* @{ */ + /** * \brief Get the data associated with the current process. * \ingroup GRAS_globals @@ -46,14 +61,11 @@ void *gras_userdata_get(void); */ void gras_userdata_set(void *ud); -/** - * \brief Malloc and set the data associated with the current process. - * \ingroup GRAS_globals - */ - +/** \brief Malloc and set the data associated with the current process. */ #define gras_userdata_new(type) (gras_userdata_set(xbt_new0(type,1)),gras_userdata_get()) +/* @} */ -END_DECL() +SG_END_DECL() #endif /* GRAS_PROCESS_H */