message: I really hate std::chrono
diff: @@ -108,16 +108,16 @@ public:
  template <typename Cond>
  void wait(InterprocessMutex& m, const struct timespec* tp, Cond&& cond)
  {
  - using clock = std::chrono::system_clock;
  - const auto deadline =
  - tp ? clock::time_point::ceil(clock::from_time_t(tp->tv_sec) + std::chrono::nanoseconds(tp->tv_nsec))
  - : clock::time_point();
  while (!cond()) {
  wait(m, tp);
  - if (tp && clock::now() >= deadline)
  + if (tp) {
  + struct timespec now;
  + timespec_get(&now, TIME_UTC);
  + if (std::tie(now.tv_sec, now.tv_nsec) >= std::tie(tp->tv_sec, tp->tv_nsec))
  return;
  }
  }
  + }
  /// Wake up every thread that is currently waiting on this condition.
  /// The caller must hold the lock associated with the condvar at the time
  