From d7f96ade2801a712dbb532ab08ec93c9558870e1 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Fri, 18 Jun 2010 11:28:55 +0200 Subject: Use a non-blocking example in test/mtdev The non-blocking case is more interesting for X applications. Signed-off-by: Henrik Rydberg --- test/mtdev.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'test/mtdev.c') diff --git a/test/mtdev.c b/test/mtdev.c index 995a4e2..60fae7b 100644 --- a/test/mtdev.c +++ b/test/mtdev.c @@ -62,7 +62,11 @@ static void loop_device(int fd) fprintf(stderr, "error: could not open device: %d\n", ret); return; } - while (mtdev_pull(&dev, fd, 1) > 0) { + /* while the device has not been inactive for five seconds */ + while (!mtdev_idle(&dev, fd, 5000)) { + /* fetch all available kernel events */ + mtdev_pull(&dev, fd, 0); + /* extract all available canonical events */ while (!mtdev_empty(&dev)) { mtdev_get(&dev, &ev); if (use_event(&ev)) @@ -79,7 +83,7 @@ int main(int argc, char *argv[]) fprintf(stderr, "Usage: mtdev \n"); return -1; } - fd = open(argv[1], O_RDONLY); + fd = open(argv[1], O_RDONLY | O_NONBLOCK); if (fd < 0) { fprintf(stderr, "error: could not open device\n"); return -1; -- cgit v1.2.3