X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0e9c0448c6566825b170b98ecff716b098bda10e..0c1113a3d64447cac78d831318fd050b8d2ae9a4:/include/xbt/parmap.h diff --git a/include/xbt/parmap.h b/include/xbt/parmap.h index 624d2783cd..a92c3e7dbf 100644 --- a/include/xbt/parmap.h +++ b/include/xbt/parmap.h @@ -1,6 +1,6 @@ /* A thread pool. */ -/* Copyright (c) 2007, 2009-2013. The SimGrid Team. +/* Copyright (c) 2007, 2009-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -19,13 +19,11 @@ SG_BEGIN_DECL() * \ingroup XBT_misc * \brief Parallel map. * - * A function is applied to all elements of a dynar in parallel with n worker - * threads. + * A function is applied to all elements of a dynar in parallel with n worker threads. * The worker threads are persistent until the destruction of the parmap. * - * If there are more than n elements in the dynar, the worker threads are - * allowed to fetch themselves remaining work with xbt_parmap_next() and - * execute it. + * If there are more than n elements in the dynar, the worker threads are allowed to fetch themselves remaining work + * with xbt_parmap_next() and execute it. * * \{ */ @@ -33,9 +31,7 @@ SG_BEGIN_DECL() /** \brief Parallel map data type (opaque type) */ typedef struct s_xbt_parmap *xbt_parmap_t; -/** - * \brief Synchronization mode of the worker threads of a parmap. - */ +/** \brief Synchronization mode of the worker threads of a parmap. */ typedef enum { XBT_PARMAP_POSIX, /**< use POSIX synchronization primitives */ XBT_PARMAP_FUTEX, /**< use Linux futex system call */ @@ -43,27 +39,30 @@ typedef enum { XBT_PARMAP_DEFAULT /**< futex if available, posix otherwise */ } e_xbt_parmap_mode_t; -XBT_PUBLIC(xbt_parmap_t) xbt_parmap_new(unsigned int num_workers, - e_xbt_parmap_mode_t mode); +XBT_PUBLIC(xbt_parmap_t) xbt_parmap_new(unsigned int num_workers, e_xbt_parmap_mode_t mode); XBT_PUBLIC(void) xbt_parmap_destroy(xbt_parmap_t parmap); - -XBT_PUBLIC(void) xbt_parmap_apply(xbt_parmap_t parmap, - void_f_pvoid_t fun, - xbt_dynar_t data); +XBT_PUBLIC(void) xbt_parmap_apply(xbt_parmap_t parmap, void_f_pvoid_t fun, xbt_dynar_t data); XBT_PUBLIC(void*) xbt_parmap_next(xbt_parmap_t parmap); -#ifdef HAVE_MC -XBT_PUBLIC(xbt_parmap_t) xbt_parmap_mc_new(unsigned int num_workers, - e_xbt_parmap_mode_t mode); +#if HAVE_MC +XBT_PUBLIC(xbt_parmap_t) xbt_parmap_mc_new(unsigned int num_workers, e_xbt_parmap_mode_t mode); -XBT_PUBLIC(int) xbt_parmap_mc_apply(xbt_parmap_t parmap, - int_f_pvoid_pvoid_t fun, - void *data, - unsigned int length, +XBT_PUBLIC(int) xbt_parmap_mc_apply(xbt_parmap_t parmap, int_f_pvoid_pvoid_t fun, void *data, unsigned int length, void* ref_snapshot); #endif /** \} */ SG_END_DECL() +#ifdef __cplusplus +namespace simgrid { +namespace xbt { + inline void destroy(xbt_parmap_t p) + { + xbt_parmap_destroy(p); + } +} +} +#endif + #endif