#include <grpc/support/port_platform.h>
#include <utility>
#include "absl/strings/str_cat.h"
#include "absl/strings/string_view.h"
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/iomgr/port.h"
#ifdef GRPC_LINUX_EVENTFD
#include <errno.h>
#include <sys/eventfd.h>
#include <unistd.h>
#include "src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h"
#endif
#include "src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h"
#include "src/core/lib/gprpp/strerror.h"
namespace grpc_event_engine {
namespace experimental {
#ifdef GRPC_LINUX_EVENTFD
absl::Status EventFdWakeupFd::Init() { … }
absl::Status EventFdWakeupFd::ConsumeWakeup() { … }
absl::Status EventFdWakeupFd::Wakeup() { … }
EventFdWakeupFd::~EventFdWakeupFd() { … }
bool EventFdWakeupFd::IsSupported() { … }
absl::StatusOr<std::unique_ptr<WakeupFd>>
EventFdWakeupFd::CreateEventFdWakeupFd() { … }
#else
#include "src/core/lib/gprpp/crash.h"
absl::Status EventFdWakeupFd::Init() { grpc_core::Crash("unimplemented"); }
absl::Status EventFdWakeupFd::ConsumeWakeup() {
grpc_core::Crash("unimplemented");
}
absl::Status EventFdWakeupFd::Wakeup() { grpc_core::Crash("unimplemented"); }
bool EventFdWakeupFd::IsSupported() { return false; }
absl::StatusOr<std::unique_ptr<WakeupFd>>
EventFdWakeupFd::CreateEventFdWakeupFd() {
return absl::NotFoundError("Eventfd wakeup fd is not supported");
}
#endif
}
}