SimGrid  3.21
Versatile Simulation of Distributed Systems

Detailed Description

Thread portability layer.

This section describes the thread portability layer. It defines types and functions very close to the pthread API, but it's portable to windows too.

Typedefs

typedef struct xbt_os_thread_ * xbt_os_thread_t
 Thread data type (opaque structure) More...
 
typedef struct xbt_os_mutex_ * xbt_os_mutex_t
 Thread mutex data type (opaque structure) More...
 
typedef struct xbt_os_sem_ * xbt_os_sem_t
 Semaphore data type (opaque structure) More...
 

Functions

xbt_os_thread_t xbt_os_thread_create (const char *name, pvoid_f_pvoid_t start_routine, void *param, void *data)
 
void xbt_os_thread_exit (int *retcode)
 
xbt_os_thread_t xbt_os_thread_self (void)
 
const char * xbt_os_thread_self_name (void)
 
void xbt_os_thread_set_extra_data (void *data)
 
void * xbt_os_thread_get_extra_data (void)
 
void xbt_os_thread_join (xbt_os_thread_t thread, void **thread_return)
 
void xbt_os_thread_setstacksize (int stack_size)
 
void xbt_os_thread_setguardsize (int guard_size)
 
int xbt_os_thread_bind (xbt_os_thread_t thread, int core)
 
int xbt_os_thread_atfork (void(*prepare)(void), void(*parent)(void), void(*child)(void))
 
xbt_os_mutex_t xbt_os_mutex_init (void)
 
void xbt_os_mutex_acquire (xbt_os_mutex_t mutex)
 
void xbt_os_mutex_release (xbt_os_mutex_t mutex)
 
void xbt_os_mutex_destroy (xbt_os_mutex_t mutex)
 
xbt_os_sem_t xbt_os_sem_init (unsigned int value)
 
void xbt_os_sem_acquire (xbt_os_sem_t sem)
 
void xbt_os_sem_release (xbt_os_sem_t sem)
 
void xbt_os_sem_destroy (xbt_os_sem_t sem)
 

Typedef Documentation

◆ xbt_os_thread_t

typedef struct xbt_os_thread_* xbt_os_thread_t

Thread data type (opaque structure)

◆ xbt_os_mutex_t

typedef struct xbt_os_mutex_* xbt_os_mutex_t

Thread mutex data type (opaque structure)

◆ xbt_os_sem_t

typedef struct xbt_os_sem_* xbt_os_sem_t

Semaphore data type (opaque structure)

Function Documentation

◆ xbt_os_thread_create()

xbt_os_thread_t xbt_os_thread_create ( const char *  name,
pvoid_f_pvoid_t  start_routine,
void *  param,
void *  data 
)

◆ xbt_os_thread_exit()

void xbt_os_thread_exit ( int *  retcode)

◆ xbt_os_thread_self()

xbt_os_thread_t xbt_os_thread_self ( void  )

◆ xbt_os_thread_self_name()

const char* xbt_os_thread_self_name ( void  )

◆ xbt_os_thread_set_extra_data()

void xbt_os_thread_set_extra_data ( void *  data)

◆ xbt_os_thread_get_extra_data()

void* xbt_os_thread_get_extra_data ( void  )

◆ xbt_os_thread_join()

void xbt_os_thread_join ( xbt_os_thread_t  thread,
void **  thread_return 
)

◆ xbt_os_thread_setstacksize()

void xbt_os_thread_setstacksize ( int  stack_size)

◆ xbt_os_thread_setguardsize()

void xbt_os_thread_setguardsize ( int  guard_size)

◆ xbt_os_thread_bind()

int xbt_os_thread_bind ( xbt_os_thread_t  thread,
int  core 
)

◆ xbt_os_thread_atfork()

int xbt_os_thread_atfork ( void(*)(void)  prepare,
void(*)(void)  parent,
void(*)(void)  child 
)

◆ xbt_os_mutex_init()

xbt_os_mutex_t xbt_os_mutex_init ( void  )

◆ xbt_os_mutex_acquire()

void xbt_os_mutex_acquire ( xbt_os_mutex_t  mutex)

◆ xbt_os_mutex_release()

void xbt_os_mutex_release ( xbt_os_mutex_t  mutex)

◆ xbt_os_mutex_destroy()

void xbt_os_mutex_destroy ( xbt_os_mutex_t  mutex)

◆ xbt_os_sem_init()

xbt_os_sem_t xbt_os_sem_init ( unsigned int  value)

◆ xbt_os_sem_acquire()

void xbt_os_sem_acquire ( xbt_os_sem_t  sem)

◆ xbt_os_sem_release()

void xbt_os_sem_release ( xbt_os_sem_t  sem)

◆ xbt_os_sem_destroy()

void xbt_os_sem_destroy ( xbt_os_sem_t  sem)