about summary refs log tree commit homepage
path: root/selfwake_eventfd.h
diff options
context:
space:
mode:
Diffstat (limited to 'selfwake_eventfd.h')
-rw-r--r--selfwake_eventfd.h54
1 files changed, 0 insertions, 54 deletions
diff --git a/selfwake_eventfd.h b/selfwake_eventfd.h
deleted file mode 100644
index 836d037..0000000
--- a/selfwake_eventfd.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2012-2013, Eric Wong <normalperson@yhbt.net>
- * License: GPLv3 or later (see COPYING for details)
- */
-#if defined(HAVE_SYS_EVENTFD_H) && defined(HAVE_EVENTFD)
-#include <sys/eventfd.h>
-#if defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK)
-#include <sys/poll.h>
-
-static ssize_t selfwake_write(struct mog_fd *mfd)
-{
-        static const uint64_t buf = 1;
-
-        return write(mfd->fd, &buf, sizeof(buf));
-}
-
-struct mog_fd * mog_selfwake_new(void)
-{
-        struct mog_fd *mfd;
-        int efd = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
-
-        if (efd < 0)
-                die_errno("failed to create eventfd");
-
-        mfd = mog_fd_init(efd, MOG_FD_TYPE_SELFWAKE);
-        mfd->as.selfwake.writer = mfd;
-
-        return mfd;
-}
-
-static ssize_t selfwake_drain(struct mog_fd *mfd)
-{
-        uint64_t buf;
-
-        return read(mfd->fd, &buf, sizeof(buf));
-}
-
-/* this allows interrupts */
-void mog_selfwake_wait(struct mog_fd *mfd)
-{
-        sigset_t set;
-        struct pollfd pfd = { .fd = mfd->fd, .events = POLLIN };
-        int r;
-
-        CHECK(int, 0, sigemptyset(&set));
-
-        r = ppoll(&pfd, 1, NULL, &set);
-        if ((r < 0) && (errno != ENOMEM))
-                assert(errno == EINTR && "BUG in using ppoll");
-
-        mog_selfwake_drain(mfd);
-}
-#endif /* EFD_CLOEXEC+EFD_NONBLOCK */
-#endif /* HAVE_SYS_EVENTFD_H  */