diff --git a/src/c/threads/barrier.d b/src/c/threads/barrier.d index a57549890..68a43f9a5 100644 --- a/src/c/threads/barrier.d +++ b/src/c/threads/barrier.d @@ -104,8 +104,12 @@ static cl_object barrier_wait_condition(cl_env_ptr env, cl_object barrier) { cl_object output; + /* We were signaled */ if (env->own_process->process.waiting_for != barrier) return Ct; + /* Disabled barrier */ + else if (barrier->barrier.arrivers_count < 0) + return Ct; else return Cnil; }