xmlstream: fix slow tasks scheduling
- wrong attribute used - some mistakes in the slow tasks function
This commit is contained in:
parent
ee671dfb29
commit
8b90cdd73f
1 changed files with 8 additions and 4 deletions
|
@ -1007,11 +1007,13 @@ class XMLStream(asyncio.BaseProtocol):
|
||||||
"""
|
"""
|
||||||
data = await task
|
data = await task
|
||||||
self.__slow_tasks.remove(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:
|
if filter in already_used:
|
||||||
continue
|
continue
|
||||||
if iscoroutinefunction(filter):
|
if iscoroutinefunction(filter):
|
||||||
data = await task
|
data = await filter(data)
|
||||||
else:
|
else:
|
||||||
data = filter(data)
|
data = filter(data)
|
||||||
if data is None:
|
if data is None:
|
||||||
|
@ -1047,7 +1049,7 @@ class XMLStream(asyncio.BaseProtocol):
|
||||||
timeout=1,
|
timeout=1,
|
||||||
)
|
)
|
||||||
if pending:
|
if pending:
|
||||||
self.slow_tasks.append(task)
|
self.__slow_tasks.append(task)
|
||||||
asyncio.ensure_future(
|
asyncio.ensure_future(
|
||||||
self._continue_slow_send(
|
self._continue_slow_send(
|
||||||
task,
|
task,
|
||||||
|
@ -1055,7 +1057,9 @@ class XMLStream(asyncio.BaseProtocol):
|
||||||
),
|
),
|
||||||
loop=self.loop,
|
loop=self.loop,
|
||||||
)
|
)
|
||||||
raise Exception("Slow coro, rescheduling")
|
raise ContinueQueue(
|
||||||
|
"Slow coroutine, rescheduling filters"
|
||||||
|
)
|
||||||
data = task.result()
|
data = task.result()
|
||||||
else:
|
else:
|
||||||
data = filter(data)
|
data = filter(data)
|
||||||
|
|
Loading…
Reference in a new issue