<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - DRI3 rendering gets stuck waiting for present idle notify event"
href="https://bugs.freedesktop.org/show_bug.cgi?id=84252#c52">Comment # 52</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - DRI3 rendering gets stuck waiting for present idle notify event"
href="https://bugs.freedesktop.org/show_bug.cgi?id=84252">bug 84252</a>
from <span class="vcard"><a class="email" href="mailto:psychon@znc.in" title="Uli Schlachter <psychon@znc.in>"> <span class="fn">Uli Schlachter</span></a>
</span></b>
<pre>Part of the patch was pushed:
commit f85661c3bca97faa72431df92a3867be39a74e23
Author: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com">michel.daenzer@amd.com</a>>
Date: Mon Jun 1 11:04:18 2015 +0900
Call _xcb_wake_up_next_reader from xcb_wait_for_special_event
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: <a class="bz_bug_link
bz_status_NEW "
title="NEW - DRI3 rendering gets stuck waiting for present idle notify event"
href="show_bug.cgi?id=84252">https://bugs.freedesktop.org/show_bug.cgi?id=84252</a>
Tested-by: Thomas Daede <<a href="mailto:bztdlinux@gmail.com">bztdlinux@gmail.com</a>>
Tested-by: Clément Guérin <<a href="mailto:geecko.dev@free.fr">geecko.dev@free.fr</a>>
Reviewed-by: Uli Schlachter <<a href="mailto:psychon@znc.in">psychon@znc.in</a>>
Signed-off-by: Michel Dänzer <<a href="mailto:michel@daenzer.net">michel@daenzer.net</a>>
Signed-off-by: Uli Schlachter <<a href="mailto:psychon@znc.in">psychon@znc.in</a>>
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;
}</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>