  #include <mutex>
  #include <condition_variable>
  #include <iostream>

  int main() {
    std::mutex mutex;
    std::condition_variable condition;

    using namespace std::chrono;
    using clock = steady_clock;
    for (;;) {
      auto forever = time_point<clock>::max();
      std::unique_lock<std::mutex> lock(mutex);

      std::cout << "Now waiting" << std::endl;
      condition.wait_until(lock, forever);
      std::cout << "Now waking up" << std::endl;
    }

    return 0;
  }
