[PATCH xserver] xfree86: Fix interpretation of xf86WaitForInput timeout
Peter Hutterer
peter.hutterer at who-t.net
Mon May 29 03:58:33 UTC 2017
On Fri, May 26, 2017 at 02:27:19PM -0700, Jason Gerecke wrote:
> Commit aa6717ce2 switched xf86WaitForInput from using select(2) to using
> poll(2). Before this change, the timeout was interpreted as being in
> microseconds; afterwards it is fed directly to xorg_poll which interprets
> it as being in milliseconds. This results in the function potentially
> blocking 1000x longer than intended. This commit scales down the timeout
> argument before passing it to xorg_poll, being careful to ensure the result
> is not rounded down due to integer division.
>
> Signed-off-by: Jason Gerecke <jason.gerecke at wacom.com>
makes sense. pushed, thanks!
To git+ssh://git.freedesktop.org/git/xorg/xserver
933d80ba9..2fbf62b2f master -> master
Cheers,
Peter
> ---
> hw/xfree86/os-support/shared/posix_tty.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
> index 6249a625c..4c4936c14 100644
> --- a/hw/xfree86/os-support/shared/posix_tty.c
> +++ b/hw/xfree86/os-support/shared/posix_tty.c
> @@ -394,6 +394,9 @@ xf86WaitForInput(int fd, int timeout)
> poll_fd.fd = fd;
> poll_fd.events = POLLIN;
>
> + /* convert microseconds to milliseconds */
> + timeout = (timeout + 999) / 1000;
> +
> if (fd >= 0) {
> SYSCALL(r = xserver_poll(&poll_fd, 1, timeout));
> }
> --
> 2.13.0
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list