#include <grpc/support/port_platform.h>
#include <memory>
#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "src/core/lib/event_engine/posix_engine/wakeup_fd_eventfd.h"
#include "src/core/lib/event_engine/posix_engine/wakeup_fd_pipe.h"
#include "src/core/lib/event_engine/posix_engine/wakeup_fd_posix.h"
#include "src/core/lib/iomgr/port.h"
namespace grpc_event_engine {
namespace experimental {
#ifdef GRPC_POSIX_WAKEUP_FD
absl::StatusOr<std::unique_ptr<WakeupFd>> NotSupported() { … }
namespace {
absl::StatusOr<std::unique_ptr<WakeupFd>> (*g_wakeup_fd_fn)() = …;
}
bool SupportsWakeupFd() { … }
absl::StatusOr<std::unique_ptr<WakeupFd>> CreateWakeupFd() { … }
#else
bool SupportsWakeupFd() { return false; }
absl::StatusOr<std::unique_ptr<WakeupFd>> CreateWakeupFd() {
return absl::NotFoundError("Wakeup-fd is not supported on this system");
}
#endif
}
}