X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9896aefd0e354ac7342df0589f8ec119e0d517fc..654cf85f8a467bd8f883956476237b670292bb3b:/include/gras/process.h diff --git a/include/gras/process.h b/include/gras/process.h index e67941ae02..5cf7a16e18 100644 --- a/include/gras/process.h +++ b/include/gras/process.h @@ -1,8 +1,7 @@ -/* $Id$ */ - /* gras/process.h - Manipulating data related to an host. */ -/* Copyright (c) 2003, 2004 Martin Quinson. All rights reserved. */ +/* Copyright (c) 2004, 2005, 2006, 2007, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -10,10 +9,20 @@ #ifndef GRAS_PROCESS_H #define GRAS_PROCESS_H -#include "xbt/misc.h" /* SG_BEGIN_DECL */ +#include "xbt/misc.h" /* SG_BEGIN_DECL */ +#include "xbt/dict.h" SG_BEGIN_DECL() +/** \addtogroup GRAS_globals + * @{ */ + +/** \brief Create a new thread */ +void gras_agent_spawn(const char *name, xbt_main_func_t code, + int argc, char *argv[], xbt_dict_t properties); + +/** @} */ + /****************************************************************************/ /* Manipulating User Data */ /****************************************************************************/ @@ -28,7 +37,11 @@ SG_BEGIN_DECL() * * 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. + * retrieve a reference to it. + * + * + * For more info on this, you may want to check the relevant lesson of the GRAS tutorial: + * \ref GRAS_tut_tour_globals */ /* @{ */ @@ -36,19 +49,25 @@ SG_BEGIN_DECL() * \brief Get the data associated with the current process. * \ingroup GRAS_globals */ -XBT_PUBLIC(void*) gras_userdata_get(void); +XBT_PUBLIC(void *) gras_userdata_get(void); /** * \brief Set the data associated with the current process. * \ingroup GRAS_globals */ -XBT_PUBLIC(void) gras_userdata_set(void *ud); +XBT_PUBLIC(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()) +/** \brief Malloc and set the data associated with the current process. + * + * @warning gras_userdata_new() expects the pointed type, not the + * pointer type. We know it'a a bit troublesome, but it seems like + * the only solution since this macro has to compute the size to + * malloc and should thus know the pointed type. + * + * You'll find an example in the tutorial: \ref GRAS_tut_tour_globals + */ +#define gras_userdata_new(type) ((type*)gras_userdata_set(xbt_new0(type,1))) /* @} */ SG_END_DECL() - -#endif /* GRAS_PROCESS_H */ - +#endif /* GRAS_PROCESS_H */