18 #ifndef __STARPU_THREAD_H__ 
   19 #define __STARPU_THREAD_H__ 
   23 #include <xbt/synchro_core.h> 
   25 #elif !defined(_MSC_VER) || defined(BUILDING_STARPU) 
   40 typedef int starpu_pthread_t;
 
   41 typedef int starpu_pthread_attr_t;
 
   43 int starpu_pthread_create_on(
char *name, starpu_pthread_t *thread, 
const starpu_pthread_attr_t *attr, 
void *(*start_routine) (
void *), 
void *arg, 
int where);
 
   44 int starpu_pthread_create(starpu_pthread_t *thread, 
const starpu_pthread_attr_t *attr, 
void *(*start_routine) (
void *), 
void *arg);
 
   50 #elif !defined(_MSC_VER) || defined(BUILDING_STARPU)  
   52 typedef pthread_t starpu_pthread_t;
 
   53 typedef pthread_attr_t starpu_pthread_attr_t;
 
   55 #define starpu_pthread_create pthread_create 
   56 #define starpu_pthread_create_on(name, thread, attr, routine, arg, where) starpu_pthread_create(thread, attr, routine, arg) 
   57 #define starpu_pthread_join pthread_join 
   58 #define starpu_pthread_attr_init pthread_attr_init 
   59 #define starpu_pthread_attr_destroy pthread_attr_destroy 
   60 #define starpu_pthread_attr_setdetachstate pthread_attr_setdetachstate 
   69 typedef xbt_mutex_t starpu_pthread_mutex_t;
 
   70 typedef int starpu_pthread_mutexattr_t;
 
   72 #define STARPU_PTHREAD_MUTEX_INITIALIZER NULL 
   80 #elif !defined(_MSC_VER) || defined(BUILDING_STARPU)  
   82 typedef pthread_mutex_t starpu_pthread_mutex_t;
 
   83 typedef pthread_mutexattr_t starpu_pthread_mutexattr_t;
 
   85 #define starpu_pthread_mutex_init pthread_mutex_init 
   86 #define starpu_pthread_mutex_destroy pthread_mutex_destroy 
   87 #define starpu_pthread_mutex_lock pthread_mutex_lock 
   88 #define starpu_pthread_mutex_unlock pthread_mutex_unlock 
   89 #define starpu_pthread_mutex_trylock pthread_mutex_trylock 
   91 #define STARPU_PTHREAD_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER 
  100 typedef int starpu_pthread_key_t;
 
  106 #elif !defined(_MSC_VER) || defined(BUILDING_STARPU)  
  108 typedef pthread_key_t starpu_pthread_key_t;
 
  110 #define starpu_pthread_key_create pthread_key_create 
  111 #define starpu_pthread_key_delete pthread_key_delete 
  112 #define starpu_pthread_setspecific pthread_setspecific 
  113 #define starpu_pthread_getspecific pthread_getspecific 
  121 #ifdef STARPU_SIMGRID 
  123 typedef xbt_cond_t starpu_pthread_cond_t;
 
  124 typedef int starpu_pthread_condattr_t;
 
  125 #define STARPU_PTHREAD_COND_INITIALIZER NULL 
  134 #elif !defined(_MSC_VER) || defined(BUILDING_STARPU)  
  136 typedef pthread_cond_t starpu_pthread_cond_t;
 
  137 typedef pthread_condattr_t starpu_pthread_condattr_t;
 
  138 #define STARPU_PTHREAD_COND_INITIALIZER PTHREAD_COND_INITIALIZER 
  140 #define starpu_pthread_cond_init pthread_cond_init 
  141 #define starpu_pthread_cond_signal pthread_cond_signal 
  142 #define starpu_pthread_cond_broadcast pthread_cond_broadcast 
  143 #define starpu_pthread_cond_wait pthread_cond_wait 
  144 #define starpu_pthread_cond_timedwait pthread_cond_timedwait 
  145 #define starpu_pthread_cond_destroy pthread_cond_destroy 
  153 #ifdef STARPU_SIMGRID 
  155 typedef xbt_mutex_t starpu_pthread_rwlock_t;
 
  156 typedef int starpu_pthread_rwlockattr_t;
 
  161 int starpu_pthread_rwlock_tryrdlock(starpu_pthread_rwlock_t *rwlock);
 
  163 int starpu_pthread_rwlock_trywrlock(starpu_pthread_rwlock_t *rwlock);
 
  166 #elif !defined(_MSC_VER) || defined(BUILDING_STARPU)  
  168 typedef pthread_rwlock_t starpu_pthread_rwlock_t;
 
  169 typedef pthread_rwlockattr_t starpu_pthread_rwlockattr_t;
 
  171 #define starpu_pthread_rwlock_init pthread_rwlock_init 
  172 #define starpu_pthread_rwlock_destroy pthread_rwlock_destroy 
  173 #define starpu_pthread_rwlock_rdlock pthread_rwlock_rdlock 
  174 #define starpu_pthread_rwlock_tryrdlock pthread_rwlock_tryrdlock 
  175 #define starpu_pthread_rwlock_wrlock pthread_rwlock_wrlock 
  176 #define starpu_pthread_rwlock_trywrlock pthread_rwlock_trywrlock 
  177 #define starpu_pthread_rwlock_unlock pthread_rwlock_unlock 
  185 #if defined(STARPU_SIMGRID) || (!defined(STARPU_HAVE_PTHREAD_BARRIER) && (!defined(_MSC_VER) || defined(BUILDING_STARPU))) 
  188         starpu_pthread_mutex_t mutex;
 
  189         starpu_pthread_cond_t cond;
 
  193 typedef int starpu_pthread_barrierattr_t;
 
  194 #define STARPU_PTHREAD_BARRIER_SERIAL_THREAD -1 
  196 int starpu_pthread_barrier_init(
starpu_pthread_barrier_t *barrier, 
const starpu_pthread_barrierattr_t *attr, 
unsigned count);
 
  200 #elif !defined(_MSC_VER)  
  203 typedef pthread_barrierattr_t starpu_pthread_barrierattr_t;
 
  205 #define starpu_pthread_barrier_init pthread_barrier_init 
  206 #define starpu_pthread_barrier_destroy pthread_barrier_destroy 
  207 #define starpu_pthread_barrier_wait pthread_barrier_wait 
  208 #define STARPU_PTHREAD_BARRIER_SERIAL_THREAD PTHREAD_BARRIER_SERIAL_THREAD 
  212 #if defined(_MSC_VER) && !defined(BUILDING_STARPU) 
  213 typedef void* starpu_pthread_rwlock_t;
 
  214 typedef void* starpu_pthread_mutex_t;
 
  215 typedef void* starpu_pthread_cond_t;
 
  216 typedef void* starpu_pthread_barrier_t;
 
int starpu_pthread_mutex_unlock(starpu_pthread_mutex_t *mutex)
void * starpu_pthread_getspecific(starpu_pthread_key_t key)
int starpu_pthread_rwlock_rdlock(starpu_pthread_rwlock_t *rwlock)
int starpu_pthread_attr_destroy(starpu_pthread_attr_t *attr)
int starpu_pthread_cond_timedwait(starpu_pthread_cond_t *cond, starpu_pthread_mutex_t *mutex, const struct timespec *abstime)
int starpu_pthread_cond_wait(starpu_pthread_cond_t *cond, starpu_pthread_mutex_t *mutex)
int starpu_pthread_setspecific(starpu_pthread_key_t key, const void *pointer)
int starpu_pthread_rwlock_wrlock(starpu_pthread_rwlock_t *rwlock)
int starpu_pthread_rwlock_unlock(starpu_pthread_rwlock_t *rwlock)
int starpu_pthread_mutex_destroy(starpu_pthread_mutex_t *mutex)
int starpu_pthread_cond_broadcast(starpu_pthread_cond_t *cond)
Definition: starpu_thread.h:187
int starpu_pthread_join(starpu_pthread_t thread, void **retval)
int starpu_pthread_mutex_init(starpu_pthread_mutex_t *mutex, const starpu_pthread_mutexattr_t *mutexattr)
int starpu_pthread_key_delete(starpu_pthread_key_t key)
int starpu_pthread_rwlock_init(starpu_pthread_rwlock_t *rwlock, const starpu_pthread_rwlockattr_t *attr)
int starpu_pthread_cond_destroy(starpu_pthread_cond_t *cond)
int starpu_pthread_cond_init(starpu_pthread_cond_t *cond, starpu_pthread_condattr_t *cond_attr)
int starpu_pthread_create(starpu_pthread_t *thread, const starpu_pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)
int starpu_pthread_attr_init(starpu_pthread_attr_t *attr)
int starpu_pthread_attr_setdetachstate(starpu_pthread_attr_t *attr, int detachstate)
int starpu_pthread_mutex_lock(starpu_pthread_mutex_t *mutex)
int starpu_pthread_mutex_trylock(starpu_pthread_mutex_t *mutex)
int starpu_pthread_key_create(starpu_pthread_key_t *key, void(*destr_function)(void *))
int starpu_pthread_cond_signal(starpu_pthread_cond_t *cond)
int starpu_pthread_rwlock_destroy(starpu_pthread_rwlock_t *rwlock)