Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Implement pthread_barrier calls in sthread, and test them in McMini
[simgrid.git] / src / sthread / sthread.h
index f0a9117..6d9c0fa 100644 (file)
@@ -52,6 +52,17 @@ int sthread_mutex_trylock(sthread_mutex_t* mutex);
 int sthread_mutex_unlock(sthread_mutex_t* mutex);
 int sthread_mutex_destroy(sthread_mutex_t* mutex);
 
+typedef struct {
+  unsigned unused : 1;
+} sthread_barrierattr_t;
+
+typedef struct {
+  void* barrier;
+} sthread_barrier_t;
+int sthread_barrier_init(sthread_barrier_t* barrier, const sthread_barrierattr_t* attr, unsigned count);
+int sthread_barrier_wait(sthread_barrier_t* barrier);
+int sthread_barrier_destroy(sthread_barrier_t* barrier);
+
 typedef struct {
   void* sem;
 } sthread_sem_t;
@@ -63,7 +74,8 @@ int sthread_sem_trywait(sthread_sem_t* sem);
 int sthread_sem_timedwait(sthread_sem_t* sem, const struct timespec* abs_timeout);
 
 int sthread_gettimeofday(struct timeval* tv);
-void sthread_sleep(double seconds);
+unsigned int sthread_sleep(double seconds);
+int sthread_usleep(double seconds);
 
 int sthread_access_begin(void* objaddr, const char* objname, const char* file, int line, const char* function);
 void sthread_access_end(void* objaddr, const char* objname, const char* file, int line, const char* function);