On Wed, 10 Sep 2014 12:47:14 +0200 Marek Chalupa <[email protected]> wrote:
> Calling wl_display_read_events() after an error should be equivalent > to wl_display_cancel_read(), so that display state is consistent. > > Thanks to Pekka Paalanen <[email protected]> > for pointing that out. > > Signed-off-by: Marek Chalupa <[email protected]> > --- > src/wayland-client.c | 13 ++++++++++--- > 1 file changed, 10 insertions(+), 3 deletions(-) > > diff --git a/src/wayland-client.c b/src/wayland-client.c > index 1b7a046..b0f77b9 100644 > --- a/src/wayland-client.c > +++ b/src/wayland-client.c > @@ -1192,6 +1192,14 @@ read_events(struct wl_display *display) > return 0; > } > > +static void > +cancel_read(struct wl_display *display) > +{ > + display->reader_count--; > + if (display->reader_count == 0) > + display_wakeup_threads(display); > +} > + > /** Read events from display file descriptor > * > * \param display The display context object > @@ -1219,6 +1227,7 @@ wl_display_read_events(struct wl_display *display) > pthread_mutex_lock(&display->mutex); > > if (display->last_error) { > + cancel_read(display); > pthread_mutex_unlock(&display->mutex); > > errno = display->last_error; > @@ -1365,9 +1374,7 @@ wl_display_cancel_read(struct wl_display *display) > { > pthread_mutex_lock(&display->mutex); > > - display->reader_count--; > - if (display->reader_count == 0) > - display_wakeup_threads(display); > + cancel_read(display); > > pthread_mutex_unlock(&display->mutex); > } All three pushed. Thanks, pq _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
