mutilate/barrier.h
Jacob Leverich 386320d266 Initial check-in.
This is extracted from another git repo.  This is the first release, and
the prior commit history is not terribly interesting, so I'm not going
to bother using filter-branch to try to cleanly isolate the history for
this tool.

Cheers.
2012-08-23 14:30:32 -07:00

26 lines
602 B
C

#ifndef BARRIER_H
#define BARRIER_H
#include "config.h"
typedef struct {
int needed;
int called;
pthread_mutex_t mutex;
pthread_cond_t cond;
} barrier_t;
int barrier_init(barrier_t *barrier,int needed);
int barrier_destroy(barrier_t *barrier);
int barrier_wait(barrier_t *barrier);
#ifndef HAVE_PTHREAD_BARRIER_INIT
#define pthread_barrier_t barrier_t
#define pthread_barrier_attr_t barrier_attr_t
#define pthread_barrier_init(b,a,n) barrier_init(b,n)
#define pthread_barrier_destroy(b) barrier_destroy(b)
#define pthread_barrier_wait(b) barrier_wait(b)
#endif
#endif // BARRIER_H