mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-06 08:28:39 +00:00
Reduce the amount of calls in the MultiCall batch by removing
duplicates. Increase the MultiCall timer to 200ms.
This commit is contained in:
parent
3e2631213c
commit
f0b6833d17
1 changed files with 16 additions and 11 deletions
|
@ -134,7 +134,7 @@ class CoreProxy(gobject.GObject):
|
||||||
self._core = None
|
self._core = None
|
||||||
self._multi = None
|
self._multi = None
|
||||||
self._callbacks = []
|
self._callbacks = []
|
||||||
gobject.timeout_add(10, self.do_multicall)
|
gobject.timeout_add(200, self.do_multicall)
|
||||||
|
|
||||||
def call(self, func, callback, *args):
|
def call(self, func, callback, *args):
|
||||||
if self._core is None or self._multi is None:
|
if self._core is None or self._multi is None:
|
||||||
|
@ -143,26 +143,31 @@ class CoreProxy(gobject.GObject):
|
||||||
_func = getattr(self._multi, func)
|
_func = getattr(self._multi, func)
|
||||||
|
|
||||||
if _func is not None:
|
if _func is not None:
|
||||||
if len(args) == 0:
|
if (func, args) in self._multi.get_call_list():
|
||||||
_func()
|
index = self._multi.get_call_list().index((func, args))
|
||||||
|
self._callbacks[index].append(callback)
|
||||||
else:
|
else:
|
||||||
_func(*args)
|
if len(args) == 0:
|
||||||
self._callbacks.append(callback)
|
_func()
|
||||||
|
else:
|
||||||
|
_func(*args)
|
||||||
|
|
||||||
|
self._callbacks.append([callback])
|
||||||
|
|
||||||
def do_multicall(self, block=False):
|
def do_multicall(self, block=False):
|
||||||
if len(self._callbacks) == 0:
|
if len(self._callbacks) == 0:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if self._multi is not None:
|
if self._multi is not None:
|
||||||
try:
|
try:
|
||||||
try:
|
try:
|
||||||
for i, ret in enumerate(self._multi()):
|
for i, ret in enumerate(self._multi()):
|
||||||
try:
|
try:
|
||||||
if block == False:
|
for callback in self._callbacks[i]:
|
||||||
gobject.idle_add(self._callbacks[i], ret)
|
if block == False:
|
||||||
else:
|
gobject.idle_add(callback, ret)
|
||||||
self._callbacks[i](ret)
|
else:
|
||||||
|
callback(ret)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
except socket.error, e:
|
except socket.error, e:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue