Include active requests in the pending requests count.

Counter was 0 if request queue was empty but Picard was still waiting for replies,
with this change, counter is set to 0 only if no active request left.
This commit is contained in:
Laurent Monin
2013-06-27 18:17:42 +02:00
parent 78df904c77
commit 559ec4e74b
2 changed files with 6 additions and 1 deletions

View File

@@ -225,7 +225,9 @@ class MainWindow(QtGui.QMainWindow):
self.infostatus.setFiles(len(self.tagger.files))
self.infostatus.setAlbums(len(self.tagger.albums))
self.infostatus.setPendingFiles(File.num_pending_files)
self.infostatus.setPendingRequests(self.tagger.xmlws.num_pending_web_requests)
ws = self.tagger.xmlws
self.infostatus.setPendingRequests(max(ws.num_pending_web_requests,
ws.num_active_requests))
def update_statusbar_listen_port(self, listen_port):
self.listening_label.setVisible(True)

View File

@@ -139,6 +139,7 @@ class XmlWebService(QtCore.QObject):
"DELETE": self.manager.deleteResource
}
self.num_pending_web_requests = 0
self.num_active_requests = 0
def set_cache(self, cache_size_in_mb=100):
cache = QtNetwork.QNetworkDiskCache()
@@ -182,6 +183,7 @@ class XmlWebService(QtCore.QObject):
key = (host, port)
self._last_request_times[key] = time.time()
self._active_requests[reply] = (request, handler, xml)
self.num_active_requests += 1
return True
@staticmethod
@@ -195,6 +197,7 @@ class XmlWebService(QtCore.QObject):
leftUrl.toString(QUrl.RemovePort) == rightUrl.toString(QUrl.RemovePort)
def _process_reply(self, reply):
self.num_active_requests -= 1
try:
request, handler, xml = self._active_requests.pop(reply)
except KeyError: