eric6/Plugins/VcsPlugins/vcsPySvn/SvnPropListDialog.py

changeset 7774
9eed155411f0
parent 7360
9190402e4505
child 7780
41420f82c0ac
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnPropListDialog.py	Sat Oct 10 15:17:29 2020 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnPropListDialog.py	Sat Oct 10 16:03:53 2020 +0200
@@ -13,11 +13,13 @@
 
 import pysvn
 
-from PyQt5.QtCore import pyqtSlot, QMutexLocker, Qt
+from PyQt5.QtCore import pyqtSlot, Qt
 from PyQt5.QtWidgets import (
     QWidget, QHeaderView, QApplication, QDialogButtonBox, QTreeWidgetItem
 )
 
+from E5Utilities.E5MutexLocker import E5MutexLocker
+
 from .SvnDialogMixin import SvnDialogMixin
 from .Ui_SvnPropListDialog import Ui_SvnPropListDialog
 
@@ -110,28 +112,28 @@
             dname, fname = self.vcs.splitPath(fn)
             fnames = [fname]
         
-        locker = QMutexLocker(self.vcs.vcsExecutionMutex)
         cwd = os.getcwd()
         os.chdir(dname)
-        try:
-            for name in fnames:
-                proplist = self.client.proplist(name, recurse=recursive)
-                counter = 0
-                for path, prop in proplist:
-                    for propName, propVal in list(prop.items()):
-                        self.__generateItem(path, propName, propVal)
-                        self.propsFound = True
-                    counter += 1
-                    if counter == 30:
-                        # check for cancel every 30 items
-                        counter = 0
-                        if self._clientCancelCallback():
-                            break
-                if self._clientCancelCallback():
-                    break
-        except pysvn.ClientError as e:
-            self.__showError(e.args[0])
-        locker.unlock()
+        with E5MutexLocker(self.vcs.vcsExecutionMutex):
+            try:
+                for name in fnames:
+                    proplist = self.client.proplist(name, recurse=recursive)
+                    counter = 0
+                    for path, prop in proplist:
+                        for propName, propVal in list(prop.items()):
+                            self.__generateItem(path, propName, propVal)
+                            self.propsFound = True
+                        counter += 1
+                        if counter == 30:
+                            # check for cancel every 30 items
+                            counter = 0
+                            if self._clientCancelCallback():
+                                break
+                    if self._clientCancelCallback():
+                        break
+            except pysvn.ClientError as e:
+                self.__showError(e.args[0])
+        
         self.__finish()
         os.chdir(cwd)
         

eric ide

mercurial