aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRainer Hochecker <fernetmenta@online.de>2015-04-26 12:16:47 +0200
committerRainer Hochecker <fernetmenta@online.de>2015-04-26 12:16:47 +0200
commitd24705108c405c7f0ea211b147979ef33b807f2a (patch)
tree79032c5e83a336fb62906a6f35b7d8821a3e7e34
parent008d4637abc035f14d96019098c09e299d9c15d4 (diff)
parent4c1a9494b76802a77df679731e507861bc6e592b (diff)
Merge pull request #7016 from FernetMenta/refclock
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();