mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-23 08:11:00 +00:00
Tighten the tick loop
In the past, we consumed from the event queue until we were idle for a certain amount of time (0.1s). This would cause hangs in interactive tools when there was a stream of events, hurting responsiveness. We now wait for a maximum of 0.1s before triggering the tick loop, will be able to reduce this further down the track.
This commit is contained in:
parent
deffed2196
commit
5b2d1c044a
@ -110,24 +110,21 @@ class Master(object):
|
||||
def tick(self, timeout):
|
||||
changed = False
|
||||
try:
|
||||
# This endless loop runs until the 'Queue.Empty'
|
||||
# exception is thrown.
|
||||
while True:
|
||||
mtype, obj = self.event_queue.get(timeout=timeout)
|
||||
if mtype not in Events:
|
||||
raise exceptions.ControlException("Unknown event %s" % repr(mtype))
|
||||
handle_func = getattr(self, mtype)
|
||||
if not callable(handle_func):
|
||||
raise exceptions.ControlException("Handler %s not callable" % mtype)
|
||||
if not handle_func.__dict__.get("__handler"):
|
||||
raise exceptions.ControlException(
|
||||
"Handler function %s is not decorated with controller.handler" % (
|
||||
handle_func
|
||||
)
|
||||
mtype, obj = self.event_queue.get(timeout=timeout)
|
||||
if mtype not in Events:
|
||||
raise exceptions.ControlException("Unknown event %s" % repr(mtype))
|
||||
handle_func = getattr(self, mtype)
|
||||
if not callable(handle_func):
|
||||
raise exceptions.ControlException("Handler %s not callable" % mtype)
|
||||
if not handle_func.__dict__.get("__handler"):
|
||||
raise exceptions.ControlException(
|
||||
"Handler function %s is not decorated with controller.handler" % (
|
||||
handle_func
|
||||
)
|
||||
handle_func(obj)
|
||||
self.event_queue.task_done()
|
||||
changed = True
|
||||
)
|
||||
handle_func(obj)
|
||||
self.event_queue.task_done()
|
||||
changed = True
|
||||
except queue.Empty:
|
||||
pass
|
||||
return changed
|
||||
|
Loading…
Reference in New Issue
Block a user