On Wed, Sep 25, 2013 at 10:39:12AM +0100, Neil Roberts wrote: > In wl_display_dispatch_queue, if poll fails then it would previously > return immediately and leak a reference in display->reader_count. Then > if the application ignores the error and tries to read again it will > block forever. This can happen for example if the poll fails with > EINTR which the application might consider to be a recoverable error. > This patch makes it cancel the read so the reader_count will be > decremented when poll fails. > --- > > Ok, here is a second version of the patch which calls > wl_display_cancel_read as you suggested. Thanks for the review.
Thanks for the reminder, we need that in the release. Kristian > src/wayland-client.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/wayland-client.c b/src/wayland-client.c > index cad587d..a20a71e 100644 > --- a/src/wayland-client.c > +++ b/src/wayland-client.c > @@ -1224,8 +1224,10 @@ wl_display_dispatch_queue(struct wl_display *display, > > pfd[0].fd = display->fd; > pfd[0].events = POLLIN; > - if (poll(pfd, 1, -1) == -1) > + if (poll(pfd, 1, -1) == -1) { > + wl_display_cancel_read(display); > return -1; > + } > > pthread_mutex_lock(&display->mutex); > > -- > 1.8.3.1 > > _______________________________________________ > wayland-devel mailing list > wayland-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel