X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e6692e68ddfe1ef3234cacab53edb44277ae4405..d0088c5ca40d4af018ea5f874550e1405fef9a93:/include/gras/process.h diff --git a/include/gras/process.h b/include/gras/process.h index d318c9a0f6..5ffcad6fc6 100644 --- a/include/gras/process.h +++ b/include/gras/process.h @@ -34,27 +34,36 @@ xbt_error_t gras_process_exit(void); /****************************************************************************/ /* Manipulating User Data */ /****************************************************************************/ -/** - * gras_userdata_get: - * - * Get the data associated with the current process. + +/** \addtogroup GRAS_globals + * \brief Handling global variables so that it works on simulator (Virtualization). + * + * 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 + * retrive a reference to it. */ -void *gras_userdata_get(void); +/*@{*/ /** - * gras_userdata_set: - * - * Set the data associated with the current process. + * \brief Get the data associated with the current process. + * \ingroup GRAS_globals */ -void gras_userdata_set(void *ud); +void *gras_userdata_get(void); /** - * gras_userdata_new: - * - * Malloc and set the data associated with the current process. + * \brief Set the data associated with the current process. + * \ingroup GRAS_globals */ +void gras_userdata_set(void *ud); +/** \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()