48typedef struct __bar bar_t;
57typedef struct __bar bar_id [];
74#define _BAR_INIT( _limit ) { _OBJ_INIT(), _limit }
83#define OS_BAR( bar, limit ) \
84 bar_t bar[] = { _BAR_INIT( limit ) }
87#define static_BAR( bar, limit ) \
88 static bar_t bar[] = { _BAR_INIT( limit ) }
101#define BAR_INIT( limit ) \
116#define BAR_CREATE( limit ) \
117 { BAR_INIT ( limit ) }
134void bar_init( bar_t *bar,
unsigned limit );
196#if defined(__cplusplus)
210 Barrier(
const unsigned _limit ): __bar _BAR_INIT(_limit) {}
212 ~Barrier() { assert(__bar::obj.queue ==
nullptr); }
217 assert(_src.obj.queue ==
nullptr);
int bar_waitUntil(bar_t *bar, cnt_t time)
wait for release the barrier object until given timepoint
int bar_waitFor(bar_t *bar, cnt_t delay)
wait for release the barrier object for given duration of time
void bar_kill(bar_t *bar)
alias of bar_reset()
Definition osbarrier.h:147
void bar_init(bar_t *bar, unsigned limit)
initialize a barrier object
int bar_wait(bar_t *bar)
wait indefinitely until the barrier object has been released
Definition osbarrier.h:187
void bar_reset(bar_t *bar)
reset the barrier object and wake up all waiting tasks with 'E_STOPPED' event value
#define INFINITE
infinite waiting
Definition osbase.h:250
create and initialize a barrier object
Definition osbarrier.h:206
void reset()
bar_reset()
Definition osbarrier.h:223
int waitFor(const T &_delay)
bar_waitFor()
Definition osbarrier.h:226
constexpr Barrier(const unsigned _limit)
constructor, see the constructor parameters of the class
Definition osbarrier.h:209
int wait()
bar_wait()
Definition osbarrier.h:229
int waitUntil(const T &_time)
bar_waitUntil()
Definition osbarrier.h:228
void kill()
bar_kill()
Definition osbarrier.h:224
static constexpr rep until(const std::chrono::time_point< Clock, _Duration > &_time)
time point in ticks, rounded up to whole ticks (only a time point of this clock)
Definition osclock.h:109
static constexpr rep count(const std::chrono::duration< _Rep, _Period > &_delay)
delay in ticks, rounded up to whole ticks; negative delay: IMMEDIATE, delay out of range: INFINITE
Definition osclock.h:102