00001 #ifndef QT_BARRIER_H
00002 #define QT_BARRIER_H
00003
00004 #include <qthread/qthread.h>
00005
00006
00007 void qt_global_barrier(const qthread_t *me);
00008 void qt_global_barrier_init(int size, int debug);
00009 void qt_global_barrier_destroy(void);
00010 #define qt_barrier(x) qt_global_barrier(x)
00011
00012 typedef enum barrierType
00013 {
00014 REGION_BARRIER,
00015 LOOP_BARRIER
00016 } qt_barrier_btype;
00017
00018 typedef enum dumpType
00019 {
00020 UPLOCK,
00021 DOWNLOCK,
00022 BOTHLOCKS
00023 } qt_barrier_dtype;
00024
00025 typedef struct qt_barrier_s qt_barrier_t;
00026
00027 qt_barrier_t *qt_barrier_create(int size, enum barrierType type, int debug);
00028 void qt_barrier_enter(qt_barrier_t *b, qthread_shepherd_id_t shep);
00029 void qt_barrier_dump(qt_barrier_t *b, enum dumpType dt);
00030 void qt_barrier_destroy(qt_barrier_t *b);
00031
00032 #endif