diff options
author | Rainer Hochecker <fernetmenta@online.de> | 2015-04-25 19:15:08 +0200 |
---|---|---|
committer | Rainer Hochecker <fernetmenta@online.de> | 2015-04-25 19:16:48 +0200 |
commit | 4c1a9494b76802a77df679731e507861bc6e592b (patch) | |
tree | c3c1581136819180e5d4eadd102211e8e0b2c944 | |
parent | 81d04596960e28918f0360f25073cc5f4d2ddf54 (diff) |
videorefclock: fix deadlock in glx method
-rw-r--r-- | xbmc/video/videosync/VideoSyncGLX.cpp | 33 |
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(); |