#include "aos/condition.h"

#include <inttypes.h>
#include <assert.h>

#include "aos/type_traits/type_traits.h"
#include "aos/mutex/mutex.h"

namespace aos {

static_assert(shm_ok<Condition>::value,
              "Condition should work in shared memory");

Condition::Condition(Mutex *m) : impl_(), m_(m) {}

bool Condition::Wait() {
  const int ret = condition_wait(&impl_, &m_->impl_);
  assert(__builtin_expect(ret == 0 || ret == 1, 1));
  return ret == 1;
}

void Condition::Signal() {
  condition_signal(&impl_, &m_->impl_);
}

void Condition::Broadcast() {
  condition_broadcast(&impl_, &m_->impl_);
}

}  // namespace aos
