X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bc07ec1b28653016934209a9e84e249eebf703f0..8f3905e6e13d9511eb3002f9bdeb30e147e76056:/include/xbt/parmap.h diff --git a/include/xbt/parmap.h b/include/xbt/parmap.h index 7bf69c0208..b2e66dc7a4 100644 --- a/include/xbt/parmap.h +++ b/include/xbt/parmap.h @@ -32,7 +32,17 @@ SG_BEGIN_DECL() /** \brief Parallel map data type (opaque type) */ typedef struct s_xbt_parmap *xbt_parmap_t; -XBT_PUBLIC(xbt_parmap_t) xbt_parmap_new(unsigned int num_workers); +/** + * \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 */ + XBT_PARMAP_BUSY_WAIT /**< busy waits (no system calls, maximum CPU usage) */ +} 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(void) xbt_parmap_destroy(xbt_parmap_t parmap); XBT_PUBLIC(void) xbt_parmap_apply(xbt_parmap_t parmap,