Commit 8b90cdd7 authored by mathieui's avatar mathieui

xmlstream: fix slow tasks scheduling

- wrong attribute used
- some mistakes in the slow tasks function
parent ee671dfb
......@@ -1007,11 +1007,13 @@ class XMLStream(asyncio.BaseProtocol):
"""
data = await task
self.__slow_tasks.remove(task)
for filter in self.__filters['out']:
if data is None:
return
for filter in self.__filters['out'][:]:
if filter in already_used:
continue
if iscoroutinefunction(filter):
data = await task
data = await filter(data)
else:
data = filter(data)
if data is None:
......@@ -1047,7 +1049,7 @@ class XMLStream(asyncio.BaseProtocol):
timeout=1,
)
if pending:
self.slow_tasks.append(task)
self.__slow_tasks.append(task)
asyncio.ensure_future(
self._continue_slow_send(
task,
......@@ -1055,7 +1057,9 @@ class XMLStream(asyncio.BaseProtocol):
),
loop=self.loop,
)
raise Exception("Slow coro, rescheduling")
raise ContinueQueue(
"Slow coroutine, rescheduling filters"
)
data = task.result()
else:
data = filter(data)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment