From 6b4d43dbf4bbb86d479d8fca480c8bec39e2714b Mon Sep 17 00:00:00 2001 From: "Xiang, Haihao" Date: Fri, 20 Jul 2007 09:59:40 +0800 Subject: [PATCH] lock display when creating context --- src/xvmc/I915XvMC.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/xvmc/I915XvMC.c b/src/xvmc/I915XvMC.c index 5efd762a..3eb0bc38 100644 --- a/src/xvmc/I915XvMC.c +++ b/src/xvmc/I915XvMC.c @@ -1841,8 +1841,8 @@ Status XvMCCreateContext(Display *display, XvPortID port, /* Verify the XvMC extension exists */ XLockDisplay(display); if (!XvMCQueryExtension(display, &event_base, &error_base)) { - printf("XvMCExtension is not available!\n"); XUnlockDisplay(display); + printf("XvMCExtension is not available!\n"); return BadAlloc; } /* Verify XvMC version */ @@ -1873,12 +1873,15 @@ Status XvMCCreateContext(Display *display, XvPortID port, Pass control to the X server to create a drm_context_t for us and validate the with/height and flags. */ + XLockDisplay(display); if ((ret = _xvmc_create_context(display, context, &priv_count, &priv_data))) { + XUnlockDisplay(display); printf("Unable to create XvMC Context.\n"); free(pI915XvMC); context->privData = NULL; return ret; } + XUnlockDisplay(display); if (priv_count != (sizeof(I915XvMCCreateContextRec) >> 2)) { printf("_xvmc_create_context() returned incorrect data size!\n");