summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-06-18 01:39:40 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-06-18 01:39:40 +0200
commit309df849b8ad3772b912d498eacda9f38a6e4f1e (patch)
tree03c47e2a3399672d4528397c1ef980601f0488b9
parentd62c625535494361b8ba0a004a1d24ce485f0b59 (diff)
downloadmtdev-git-309df849b8ad3772b912d498eacda9f38a6e4f1e.tar.gz
Correct semantic error in mtdev_idle
The current semantics, that a non-empty conversion pipe means the device is not idle, is not very useful. This patch changes the semantics to simply checking if the fetch buffer is empty, and if there are no events to fetch from the device. Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
-rw-r--r--include/mtdev.h4
-rw-r--r--src/iobuf.c8
2 files changed, 4 insertions, 8 deletions
diff --git a/include/mtdev.h b/include/mtdev.h
index 7d442f1..4170512 100644
--- a/include/mtdev.h
+++ b/include/mtdev.h
@@ -151,8 +151,8 @@ int mtdev_open(struct mtdev *dev, int fd);
* @fd: file descriptor of the kernel device
* @ms: number of milliseconds to wait for activity
*
- * Returns true if the device is idle, i.e., there are no buffered
- * events and there is nothing to fetch from the kernel device.
+ * Returns true if the device is idle, i.e., there are no fetched
+ * events in the pipe and there is nothing to fetch from the device.
*/
int mtdev_idle(struct mtdev *dev, int fd, int ms);
diff --git a/src/iobuf.c b/src/iobuf.c
index 6516a2c..050f2ed 100644
--- a/src/iobuf.c
+++ b/src/iobuf.c
@@ -32,13 +32,9 @@
int mtdev_idle(struct mtdev *dev, int fd, int ms)
{
- struct mtdev_state *state = dev->state;
- struct mtdev_iobuf *buf = &state->iobuf;
+ struct mtdev_iobuf *buf = &dev->state->iobuf;
struct pollfd fds = { fd, POLLIN, 0 };
- return evbuf_empty(&state->outbuf) &&
- evbuf_empty(&state->inbuf) &&
- buf->head == buf->tail &&
- poll(&fds, 1, ms) <= 0;
+ return buf->head == buf->tail && poll(&fds, 1, ms) <= 0;
}
int mtdev_fetch(struct mtdev *dev, int fd, struct input_event *ev)