<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><span class="vcard"><a class="email" href="mailto:jeremyhu@freedesktop.org" title="Jeremy Huddleston Sequoia <jeremyhu@freedesktop.org>"> <span class="fn">Jeremy Huddleston Sequoia</span></a>
</span> changed
<a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED - _XReadEvents is treating EAGAIN as a fatal error instead of just trying again"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92652">bug 92652</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Product</td>
<td>xorg
</td>
<td>XCB
</td>
</tr>
<tr>
<td style="text-align:right;">Component</td>
<td>Lib/Xlib
</td>
<td>Library
</td>
</tr>
<tr>
<td style="text-align:right;">QA Contact</td>
<td>xorg-team@lists.x.org
</td>
<td>xcb@lists.freedesktop.org
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED - _XReadEvents is treating EAGAIN as a fatal error instead of just trying again"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92652#c5">Comment # 5</a>
on <a class="bz_bug_link
bz_status_ASSIGNED "
title="ASSIGNED - _XReadEvents is treating EAGAIN as a fatal error instead of just trying again"
href="https://bugs.freedesktop.org/show_bug.cgi?id=92652">bug 92652</a>
from <span class="vcard"><a class="email" href="mailto:jeremyhu@freedesktop.org" title="Jeremy Huddleston Sequoia <jeremyhu@freedesktop.org>"> <span class="fn">Jeremy Huddleston Sequoia</span></a>
</span></b>
<pre>xcb_generic_event_t *event;
dpy->xcb->event_waiter = 1;
UnlockDisplay(dpy);
event = xcb_wait_for_event(dpy->xcb->connection);
/* It appears that classic Xlib respected user
* locks when waking up after waiting for
* events. However, if this thread did not have
* any user locks, and another thread takes a
* user lock and tries to read events, then we'd
* deadlock. So we'll choose to let the thread
* that got in first consume events, despite the
* later thread's user locks. */
InternalLockDisplay(dpy, /* ignore user locks */ 1);
dpy->xcb->event_waiter = 0;
ConditionBroadcast(dpy, dpy->xcb->event_notify);
if(!event)
_XIOError(dpy); // Here's where we're bailing.
So xcb_wait_for_event() is returning NULL.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>