#include "absl/synchronization/internal/kernel_timeout.h"
#ifndef _WIN32
#include <sys/types.h>
#endif
#include <algorithm>
#include <chrono>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <limits>
#include "absl/base/attributes.h"
#include "absl/base/call_once.h"
#include "absl/base/config.h"
#include "absl/time/time.h"
namespace absl {
ABSL_NAMESPACE_BEGIN
namespace synchronization_internal {
#ifdef ABSL_INTERNAL_NEED_REDUNDANT_CONSTEXPR_DECL
constexpr uint64_t KernelTimeout::kNoTimeout;
constexpr int64_t KernelTimeout::kMaxNanos;
#endif
int64_t KernelTimeout::SteadyClockNow() { … }
KernelTimeout::KernelTimeout(absl::Time t) { … }
KernelTimeout::KernelTimeout(absl::Duration d) { … }
int64_t KernelTimeout::MakeAbsNanos() const { … }
int64_t KernelTimeout::InNanosecondsFromNow() const { … }
struct timespec KernelTimeout::MakeAbsTimespec() const { … }
struct timespec KernelTimeout::MakeRelativeTimespec() const { … }
#ifndef _WIN32
struct timespec KernelTimeout::MakeClockAbsoluteTimespec(clockid_t c) const { … }
#endif
KernelTimeout::DWord KernelTimeout::InMillisecondsFromNow() const { … }
std::chrono::time_point<std::chrono::system_clock>
KernelTimeout::ToChronoTimePoint() const { … }
std::chrono::nanoseconds KernelTimeout::ToChronoDuration() const { … }
}
ABSL_NAMESPACE_END
}