fixed: Python deadlock with dialogs (part of ticket #12282) - followup (thanks JM)
authorarnova <nospam@void.org>
Fri, 16 Mar 2012 06:23:36 +0000 (07:23 +0100)
committerarnova <nospam@void.org>
Fri, 16 Mar 2012 06:23:36 +0000 (07:23 +0100)
xbmc/interfaces/python/xbmcmodule/dialog.cpp

index 61d6e10..f1b46ca 100644 (file)
@@ -568,8 +568,10 @@ namespace PYXBMC
     CGUIDialogProgress* pDialog= ((DialogProgress*)self)->dlg;
     if (PyXBMCWindowIsNull(pDialog)) return NULL;
 
-    PyThreadState state;
-    pDialog->Close();
+    {
+      PyThreadState state;
+      pDialog->Close();
+    }
 
     Py_INCREF(Py_None);
     return Py_None;
@@ -578,9 +580,12 @@ namespace PYXBMC
   static void Dialog_ProgressDealloc(PyObject *self)
   {
     CGUIDialogProgress* pDialog= ((DialogProgress*)self)->dlg;
-    if(pDialog)
+    if (pDialog)
+    {
+      PyThreadState state;
       pDialog->Close();
-
+    }
+    
     self->ob_type->tp_free((PyObject*)self);
   }