barrier
pthread_barrier_wait(pthread_barrier_t *barrier)
if (barrier == NULL || *barrier == NULL)
b = *barrier;
pthread_barrier_init(pthread_barrier_t *barrier, pthread_barrierattr_t *attr,
if (barrier == NULL)
*barrier = b;
pthread_barrier_destroy(pthread_barrier_t *barrier)
if (barrier == NULL || *barrier == NULL)
if ((rc = pthread_mutex_lock(&(*barrier)->mutex)))
b = *barrier;
*barrier = NULL;
write(barrier[0], "x", 1);
static int barrier[2];
write(barrier[1], "y", 1);
read(barrier[1], &b, 1);
if (socketpair(AF_UNIX, SOCK_STREAM, 0, barrier) == -1)
read(barrier[0], &b, 1);
write(barrier[0], "x", 1);
static int barrier[2];
write(barrier[1], "y", 1);
read(barrier[1], &b, 1);
if (socketpair(AF_UNIX, SOCK_STREAM, 0, barrier) == -1)
read(barrier[0], &b, 1);
barrier(); /* work around https://llvm.org/pr42576 */
barrier();
void *arg, struct i915_sw_fence *barrier)
err = __await_barrier(ref, barrier);
barrier();
barrier(); \
barrier(); \
barrier();
#define iobarrier() barrier()
struct timeout barrier;
timeout_set_flags(&barrier, cond_signal_handler, &c, KCLOCK_NONE,
barrier.to_process = curproc->p_p;
barrier.to_time = ticks;
SET(barrier.to_flags, TIMEOUT_ONQUEUE);
CIRCQ_INSERT_HEAD(tctx->tctx_todo, &barrier.to_list);