eric6/WebBrowser/Network/EricSchemeHandler.py

changeset 7774
9eed155411f0
parent 7761
ed2c67d20328
child 7913
9bf6903cae97
child 7924
8a96736d465e
diff -r fe42bd17d4fe -r 9eed155411f0 eric6/WebBrowser/Network/EricSchemeHandler.py
--- a/eric6/WebBrowser/Network/EricSchemeHandler.py	Sat Oct 10 15:17:29 2020 +0200
+++ b/eric6/WebBrowser/Network/EricSchemeHandler.py	Sat Oct 10 16:03:53 2020 +0200
@@ -8,12 +8,14 @@
 """
 
 from PyQt5.QtCore import (
-    pyqtSignal, QByteArray, QBuffer, QIODevice, QUrlQuery, QMutex, QMutexLocker
+    pyqtSignal, QByteArray, QBuffer, QIODevice, QUrlQuery, QMutex
 )
 from PyQt5.QtWebEngineCore import QWebEngineUrlSchemeHandler
 
 from E5Gui.E5Application import e5App
 
+from E5Utilities.E5MutexLocker import E5MutexLocker
+
 from ..Tools.WebBrowserTools import (
     getHtmlPage, getJavascript, pixmapFileToDataUrl
 )
@@ -104,21 +106,19 @@
         if self.__loaded:
             return
         
-        lock = QMutexLocker(self.__mutex)
-        
-        if self.__pageName == "adblock":
-            contents = self.__adBlockPage()
-        elif self.__pageName in ["home", "start", "startpage"]:
-            contents = self.__startPage()
-        elif self.__pageName == "speeddial":
-            contents = self.__speedDialPage()
-        else:
-            contents = ""
-        
-        self.__buffer.setData(contents.encode("utf-8"))
-        self.__buffer.open(QIODevice.ReadOnly)
-        self.open(QIODevice.ReadOnly)
-        lock.unlock()
+        with E5MutexLocker(self.__mutex):
+            if self.__pageName == "adblock":
+                contents = self.__adBlockPage()
+            elif self.__pageName in ["home", "start", "startpage"]:
+                contents = self.__startPage()
+            elif self.__pageName == "speeddial":
+                contents = self.__speedDialPage()
+            else:
+                contents = ""
+            
+            self.__buffer.setData(contents.encode("utf-8"))
+            self.__buffer.open(QIODevice.ReadOnly)
+            self.open(QIODevice.ReadOnly)
         
         self.readyRead.emit()
         
@@ -131,8 +131,8 @@
         @return number of available bytes
         @rtype int
         """
-        lock = QMutexLocker(self.__mutex)       # __IGNORE_WARNING__
-        return self.__buffer.bytesAvailable()
+        with E5MutexLocker(self.__mutex):
+            return self.__buffer.bytesAvailable()
     
     def readData(self, maxlen):
         """
@@ -141,8 +141,8 @@
         @param maxlen maximum number of bytes to read (integer)
         @return string containing the data (bytes)
         """
-        lock = QMutexLocker(self.__mutex)       # __IGNORE_WARNING__
-        return self.__buffer.read(maxlen)
+        with E5MutexLocker(self.__mutex):
+            return self.__buffer.read(maxlen)
     
     def close(self):
         """

eric ide

mercurial