From e11a20a8122b370b66235284dd4f67ce1f1bbc0b Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov Date: Tue, 19 Jul 2016 03:00:03 +0100 Subject: vo_wayland: fix high CPU usage due to busy polling There's no need to call wl_display_flush() since all the client-side buffered data has already been flushed prior to polling the fd. Instead only check for POLLIN and the usual ERR+HUP. --- video/out/wayland_common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'video/out/wayland_common.c') diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c index 0e44dddef6..6861c93fca 100644 --- a/video/out/wayland_common.c +++ b/video/out/wayland_common.c @@ -1106,7 +1106,7 @@ static int vo_wayland_poll (struct vo *vo, int timeout_msecs) struct pollfd fd = { wl->display.display_fd, - POLLIN | POLLOUT | POLLERR | POLLHUP, + POLLIN | POLLERR | POLLHUP, 0 }; @@ -1125,8 +1125,8 @@ static int vo_wayland_poll (struct vo *vo, int timeout_msecs) } if (fd.revents & POLLIN) wl_display_dispatch(dp); - if (fd.revents & POLLOUT) - wl_display_flush(dp); + else + wl_display_dispatch_pending(dp); } return polled; -- cgit v1.2.3