about summary refs log tree commit homepage
path: root/selfwake_pipe.h
diff options
context:
space:
mode:
Diffstat (limited to 'selfwake_pipe.h')
-rw-r--r--selfwake_pipe.h49
1 files changed, 0 insertions, 49 deletions
diff --git a/selfwake_pipe.h b/selfwake_pipe.h
deleted file mode 100644
index f61d755..0000000
--- a/selfwake_pipe.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2012-2013, Eric Wong <normalperson@yhbt.net>
- * License: GPLv3 or later (see COPYING for details)
- */
-#ifndef HAVE_EVENTFD
-static ssize_t selfwake_write(struct mog_fd *mfd)
-{
-        return write(mfd->as.selfwake.writer->fd, "", 1);
-}
-
-struct mog_fd * mog_selfwake_new(void)
-{
-        struct mog_fd *reader, *writer;
-        struct mog_selfwake *selfwake;
-        int self_pipe[2];
-
-        if (pipe2(self_pipe, O_NONBLOCK | O_CLOEXEC) < 0)
-                die_errno("failed to init self-pipe");
-
-        reader = mog_fd_init(self_pipe[0], MOG_FD_TYPE_SELFWAKE);
-        selfwake = &reader->as.selfwake;
-
-        writer = mog_fd_init(self_pipe[1], MOG_FD_TYPE_SELFPIPE);
-        writer->as.selfpipe.reader = reader;
-        selfwake->writer = writer;
-
-        return reader;
-}
-
-static ssize_t selfwake_drain(struct mog_fd *mfd)
-{
-        char buf[64];
-        return read(mfd->fd, buf, sizeof(buf));
-}
-
-/* this allows interrupts */
-void mog_selfwake_wait(struct mog_fd *mfd)
-{
-        ssize_t r;
-
-        /* poll() on a pipe does not work on some *BSDs, so just block */
-        mog_set_nonblocking(mfd->fd, false);
-        mog_intr_enable();
-        r = selfwake_drain(mfd);
-        mog_intr_disable();
-        mog_set_nonblocking(mfd->fd, true);
-        mog_selfwake_drain(mfd);
-}
-#endif /* !HAVE_EVENTFD */