On 10/12/2015 05:25 AM, Belal, Awais wrote:
Hi,
Is there are a reservation against the below patch?
Looks OK, but one comment below.
BR,
Awais
________________________________________
From: mesa-dev [mesa-dev-boun...@lists.freedesktop.org] on behalf of Belal,
Awais
Sent: Thursday, October 08, 2015 2:00 PM
To: mesa-dev@lists.freedesktop.org
Subject: [Mesa-dev] [mesa-dev, mesa-demos][PATCH] sharedtex_mt: fix rendering
thread hang
XNextEvent is a blocking call which locks up the display mutex
this causes the rendering threads to hang when they try call
glXSwapBuffers() as that tries to take the same mutex in
underlying calls through XCopyArea().
So we only go to XNextEvent when it has at least one event
and we wouldn't lock indefinitely.
Signed-off-by: Awais Belal <awais_be...@mentor.com>
---
src/xdemos/sharedtex_mt.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/xdemos/sharedtex_mt.c b/src/xdemos/sharedtex_mt.c
index a90903a..1d503c4 100644
--- a/src/xdemos/sharedtex_mt.c
+++ b/src/xdemos/sharedtex_mt.c
@@ -420,9 +420,14 @@ Resize(struct window *h, unsigned int width, unsigned int
height)
static void
EventLoop(void)
{
+ int i;
+ XEvent event;
while (1) {
- int i;
- XEvent event;
+ /* Do we have an event? */
+ if (XPending(gDpy) == 0) {
+ usleep(10000);
+ continue;
+ }
XNextEvent(gDpy, &event);
for (i = 0; i < NumWindows; i++) {
struct window *h = &Windows[i];
Was there particular reason to move the i, event declarations?
In any case, I'll commit this in a bit.
-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev