diff options
author | Rainer Hochecker <fernetmenta@online.de> | 2015-04-26 12:16:47 +0200 |
---|---|---|
committer | Rainer Hochecker <fernetmenta@online.de> | 2015-04-26 12:16:47 +0200 |
commit | d24705108c405c7f0ea211b147979ef33b807f2a (patch) | |
tree | 79032c5e83a336fb62906a6f35b7d8821a3e7e34 | |
parent | 008d4637abc035f14d96019098c09e299d9c15d4 (diff) | |
parent | 4c1a9494b76802a77df679731e507861bc6e592b (diff) |
Merge pull request #7016 from FernetMenta/refclock
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(); |