[Xcb] [PATCH v2 libxcb] Call _xcb_wake_up_next_reader from xcb_wait_for_special_event

Uli Schlachter psychon at znc.in
Fri Jun 12 00:46:27 PDT 2015


Pushed as commit f85661c3bca97fa.

Cheers,
Uli

Am 01.06.2015 um 04:04 schrieb Michel Dänzer:
> From: Michel Dänzer <michel.daenzer at amd.com>
> 
> All functions calling _xcb_conn_wait() must make sure that waiting
> readers are woken up when we read a reply or event that they are waiting
> for. xcb_wait_for_special_event() did not do so. This adds the missing
> call to_xcb_in_wake_up_next_reader().
> 
> Fixes deadlock when waiting for a special event and concurrently
> processing the display connection queue in another thread.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84252
> Tested-by: Thomas Daede <bztdlinux at gmail.com>
> Tested-by: Clément Guérin <geecko.dev at free.fr>
> Reviewed-by: Uli Schlachter <psychon at znc.in>
> Signed-off-by: Michel Dänzer <michel at daenzer.net>
> ---
> 
> Uli (or anyone), can you push this for me? Thanks.
> 
>  src/xcb_in.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/xcb_in.c b/src/xcb_in.c
> index 623a0a8..322bed8 100644
> --- a/src/xcb_in.c
> +++ b/src/xcb_in.c
> @@ -761,6 +761,7 @@ xcb_generic_event_t *xcb_wait_for_special_event(xcb_connection_t *c,
>          if(!_xcb_conn_wait(c, &se->special_event_cond, 0, 0))
>              break;
>  
> +    _xcb_in_wake_up_next_reader(c);
>      pthread_mutex_unlock(&c->iolock);
>      return event;
>  }
> 


-- 
Homophobia - The fear that another man will treat you the way you treat women.


More information about the Xcb mailing list