#include <grpc/support/port_platform.h>
#include <memory>
#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_POSIX_WAKEUP_FD
#include <errno.h>
#include <fcntl.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_pipe.h"
#include "src/core/lib/gprpp/strerror.h"
namespace grpc_event_engine {
namespace experimental {
#ifdef GRPC_POSIX_WAKEUP_FD
namespace {
absl::Status SetSocketNonBlocking(int fd) { … }
}
absl::Status PipeWakeupFd::Init() { … }
absl::Status PipeWakeupFd::ConsumeWakeup() { … }
absl::Status PipeWakeupFd::Wakeup() { … }
PipeWakeupFd::~PipeWakeupFd() { … }
bool PipeWakeupFd::IsSupported() { … }
absl::StatusOr<std::unique_ptr<WakeupFd>> PipeWakeupFd::CreatePipeWakeupFd() { … }
#else
absl::Status PipeWakeupFd::Init() { grpc_core::Crash("unimplemented"); }
absl::Status PipeWakeupFd::ConsumeWakeup() {
grpc_core::Crash("unimplemented");
}
absl::Status PipeWakeupFd::Wakeup() { grpc_core::Crash("unimplemented"); }
bool PipeWakeupFd::IsSupported() { return false; }
absl::StatusOr<std::unique_ptr<WakeupFd>> PipeWakeupFd::CreatePipeWakeupFd() {
return absl::NotFoundError("Pipe wakeup fd is not supported");
}
#endif
}
}