60 auto seconds = time_point_cast<std::chrono::seconds>(abs_time);
62 time_point_cast<std::chrono::nanoseconds>(abs_time) - time_point_cast<std::chrono::nanoseconds>(seconds);
64 struct timespec timeout;
65 timeout.tv_sec = seconds.time_since_epoch().count();
66 timeout.tv_nsec = nseconds.count();
70 if (errno == ETIMEDOUT) {