[PATCH 2/2] evdev: open in nonblocking mode

Peter Hutterer peter.hutterer at who-t.net
Wed Mar 14 22:12:56 PDT 2012


On Wed, Mar 14, 2012 at 03:29:20PM -0300, Tiago Vignatti wrote:
> mtdev exposed an issue in which device fd blocks inside the library freezing
> Weston:
> 
>   0x004d696e in mtdev_fetch_event (dev=0x9fe64a8, fd=19, ev=0xbfda3438)
>   0x004d6a77 in mtdev_get (dev=0x9fe64a8, fd=19, ev=0xbfda3478, ev_max=8)
>   0x0097720b in evdev_input_device_data (fd=19, mask=1, data=0xa1ca9c8)
>   0x00182e89 in wl_event_source_fd_dispatch (source=0xa2087b0, ep=0xbfda3560)
>   0x001838ea in wl_event_loop_dispatch (loop=0xa218768, timeout=0)
>   0x08051287 in weston_compositor_read_input (fd=13, mask=1, data=0x9fe6080)
>   0x00182e89 in wl_event_source_fd_dispatch (source=0xa2151b0, ep=0xbfda3770)
>   0x001838ea in wl_event_loop_dispatch (loop=0x9fe5480, timeout=-1)
>   0x00181419 in wl_display_run (display=0x9fe5458) at wayland-server.c:847
>   0x08051e12 in main (argc=1, argv=0xbfda3ad4) at compositor.c:2569
> 
> Signed-off-by: Tiago Vignatti <tiago.vignatti at intel.com>

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

> ---
>  src/evdev.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/src/evdev.c b/src/evdev.c
> index 7bd5059..5a3c748 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -463,7 +463,7 @@ evdev_input_device_create(struct evdev_input *master,
>  	device->rel.dx = 0;
>  	device->rel.dy = 0;
>  
> -	device->fd = open(path, O_RDONLY);
> +	device->fd = open(path, O_RDONLY | O_NONBLOCK);
>  	if (device->fd < 0)
>  		goto err0;
>  
> -- 
> 1.7.5.4
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
> 


More information about the wayland-devel mailing list