aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Hochecker <fernetmenta@online.de>2015-04-25 19:15:08 +0200
committerRainer Hochecker <fernetmenta@online.de>2015-04-25 19:16:48 +0200
commit4c1a9494b76802a77df679731e507861bc6e592b (patch)
treec3c1581136819180e5d4eadd102211e8e0b2c944
parent81d04596960e28918f0360f25073cc5f4d2ddf54 (diff)
videorefclock: fix deadlock in glx method
-rw-r--r--xbmc/video/videosync/VideoSyncGLX.cpp33
1 files changed, 18 insertions, 15 deletions
diff --git a/xbmc/video/videosync/VideoSyncGLX.cpp b/xbmc/video/videosync/VideoSyncGLX.cpp
index fe839045d3..4ec4bc1042 100644
--- a/xbmc/video/videosync/VideoSyncGLX.cpp
+++ b/xbmc/video/videosync/VideoSyncGLX.cpp
@@ -255,23 +255,26 @@ void CVideoSyncGLX::Run(volatile bool& stop)
void CVideoSyncGLX::Cleanup()
{
CLog::Log(LOGDEBUG, "CVideoReferenceClock: Cleaning up GLX");
- CSingleLock lock(g_graphicsContext);
- if (m_vInfo)
- {
- XFree(m_vInfo);
- m_vInfo = NULL;
- }
- if (m_Context)
{
- glXMakeCurrent(m_Dpy, None, NULL);
- glXDestroyContext(m_Dpy, m_Context);
- m_Context = NULL;
- }
- if (m_Window)
- {
- XDestroyWindow(m_Dpy, m_Window);
- m_Window = 0;
+ CSingleLock lock(g_graphicsContext);
+
+ if (m_vInfo)
+ {
+ XFree(m_vInfo);
+ m_vInfo = NULL;
+ }
+ if (m_Context)
+ {
+ glXMakeCurrent(m_Dpy, None, NULL);
+ glXDestroyContext(m_Dpy, m_Context);
+ m_Context = NULL;
+ }
+ if (m_Window)
+ {
+ XDestroyWindow(m_Dpy, m_Window);
+ m_Window = 0;
+ }
}
m_lostEvent.Set();