modetest: add optional select codepath
authorJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 26 Mar 2010 20:13:57 +0000 (13:13 -0700)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Fri, 26 Mar 2010 20:14:38 +0000 (13:14 -0700)
For misc. testing.

tests/modetest/modetest.c

index c12699c..0a60c89 100644 (file)
@@ -618,6 +618,7 @@ set_mode(struct connector *c, int count, int page_flip)
        evctx.page_flip_handler = page_flip_handler;
        
        while (1) {
+#if 0
                struct pollfd pfd[2];
 
                pfd[0].fd = 0;
@@ -632,6 +633,24 @@ set_mode(struct connector *c, int count, int page_flip)
 
                if (pfd[0].revents)
                        break;
+#else
+               struct timeval timeout = { .tv_sec = 3, .tv_usec = 0 };
+               fd_set fds;
+               int ret;
+
+               FD_ZERO(&fds);
+               FD_SET(0, &fds);
+               FD_SET(fd, &fds);
+               ret = select(fd + 1, &fds, NULL, NULL, &timeout);
+
+               if (ret <= 0) {
+                       fprintf(stderr, "select timed out or error (ret %d)\n",
+                               ret);
+                       continue;
+               } else if (FD_ISSET(0, &fds)) {
+                       break;
+               }
+#endif
 
                drmHandleEvent(fd, &evctx);
        }