A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use for push_as and get_as for dynar
[simgrid.git]
/
src
/
include
/
xbt
/
xbt_os_thread.h
diff --git
a/src/include/xbt/xbt_os_thread.h
b/src/include/xbt/xbt_os_thread.h
index 597815d4bdb5aee82ae188f015d9b92cea6c514e..e744be5ff5f13c9137a59855d85a992d415766b3 100644
(file)
--- a/
src/include/xbt/xbt_os_thread.h
+++ b/
src/include/xbt/xbt_os_thread.h
@@
-10,6
+10,7
@@
#ifndef _XBT_OS_THREAD_H
#define _XBT_OS_THREAD_H
#ifndef _XBT_OS_THREAD_H
#define _XBT_OS_THREAD_H
+#include "gras_config.h"
#include "xbt/misc.h" /* SG_BEGIN_DECL */
#include "xbt/function_types.h"
#include "xbt/misc.h" /* SG_BEGIN_DECL */
#include "xbt/function_types.h"
@@
-26,13
+27,22
@@
SG_BEGIN_DECL()
/** \brief Thread data type (opaque structure) */
typedef struct xbt_os_thread_ *xbt_os_thread_t;
/** \brief Thread data type (opaque structure) */
typedef struct xbt_os_thread_ *xbt_os_thread_t;
+#ifdef HAVE_PTHREAD_H
+#include <pthread.h>
+typedef pthread_key_t xbt_os_thread_key_t;
+#elif defined(_XBT_WIN32)
+#include <WinDef.h>
+typedef DWORD xbt_os_thread_key_t;
+#endif
+
/* Calls pthread_atfork() if present, and else does nothing.
/* Calls pthread_atfork() if present, and else does nothing.
- * The only known user of this wrapper is mmalloc_preinit().
+ * The only known user of this wrapper is mmalloc_preinit()
; This function may disapear in the near future
.
*/
XBT_PUBLIC(int) xbt_os_thread_atfork(void (*prepare)(void),
void (*parent)(void),
void (*child)(void));
*/
XBT_PUBLIC(int) xbt_os_thread_atfork(void (*prepare)(void),
void (*parent)(void),
void (*child)(void));
+XBT_PUBLIC(int) xbt_os_get_numcores(void);
XBT_PUBLIC(xbt_os_thread_t) xbt_os_thread_create(const char *name,
pvoid_f_pvoid_t start_routine,
XBT_PUBLIC(xbt_os_thread_t) xbt_os_thread_create(const char *name,
pvoid_f_pvoid_t start_routine,
@@
-46,6
+56,9
@@
XBT_PUBLIC(const char *) xbt_os_thread_self_name(void);
XBT_PUBLIC(const char *) xbt_os_thread_name(xbt_os_thread_t);
XBT_PUBLIC(void) xbt_os_thread_set_extra_data(void *data);
XBT_PUBLIC(void *) xbt_os_thread_get_extra_data(void);
XBT_PUBLIC(const char *) xbt_os_thread_name(xbt_os_thread_t);
XBT_PUBLIC(void) xbt_os_thread_set_extra_data(void *data);
XBT_PUBLIC(void *) xbt_os_thread_get_extra_data(void);
+XBT_PUBLIC(void) xbt_os_thread_key_create(xbt_os_thread_key_t* key);
+XBT_PUBLIC(void) xbt_os_thread_set_specific(xbt_os_thread_key_t key, void* value);
+XBT_PUBLIC(void*) xbt_os_thread_get_specific(xbt_os_thread_key_t key);
/* xbt_os_thread_join frees the joined thread (ie the XBT wrapper around it, the OS frees the rest) */
XBT_PUBLIC(void) xbt_os_thread_join(xbt_os_thread_t thread,
void **thread_return);
/* xbt_os_thread_join frees the joined thread (ie the XBT wrapper around it, the OS frees the rest) */
XBT_PUBLIC(void) xbt_os_thread_join(xbt_os_thread_t thread,
void **thread_return);