--- a/eric6/WebBrowser/Network/QtHelpSchemeHandler.py Sat Oct 03 11:14:23 2020 +0200 +++ b/eric6/WebBrowser/Network/QtHelpSchemeHandler.py Sun Nov 01 11:15:18 2020 +0100 @@ -7,17 +7,18 @@ Module implementing a scheme access handler for QtHelp. """ - import mimetypes import os from PyQt5.QtCore import ( - pyqtSignal, QByteArray, QIODevice, QBuffer, QMutex, QMutexLocker + pyqtSignal, QByteArray, QIODevice, QBuffer, QMutex ) from PyQt5.QtWebEngineCore import ( QWebEngineUrlSchemeHandler, QWebEngineUrlRequestJob ) +from E5Utilities.E5MutexLocker import E5MutexLocker + QtDocPath = "qthelp://org.qt-project." ExtensionMap = { @@ -169,11 +170,10 @@ """</html>""").format(url.toString()) .encode("utf-8")) - lock = QMutexLocker(self.__mutex) - self.__buffer.setData(data) - self.__buffer.open(QIODevice.ReadOnly) - self.open(QIODevice.ReadOnly) - lock.unlock() + with E5MutexLocker(self.__mutex): + self.__buffer.setData(data) + self.__buffer.open(QIODevice.ReadOnly) + self.open(QIODevice.ReadOnly) self.readyRead.emit() @@ -184,8 +184,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): """ @@ -194,8 +194,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): """