forked from MirrorHub/synapse
Make concurrently_execute work with async/await
This commit is contained in:
parent
fec7d88645
commit
09a135b039
1 changed files with 3 additions and 4 deletions
|
@ -138,7 +138,7 @@ def concurrently_execute(func, args, limit):
|
|||
the number of concurrent executions.
|
||||
|
||||
Args:
|
||||
func (func): Function to execute, should return a deferred.
|
||||
func (func): Function to execute, should return a deferred or coroutine.
|
||||
args (list): List of arguments to pass to func, each invocation of func
|
||||
gets a signle argument.
|
||||
limit (int): Maximum number of conccurent executions.
|
||||
|
@ -148,11 +148,10 @@ def concurrently_execute(func, args, limit):
|
|||
"""
|
||||
it = iter(args)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def _concurrently_execute_inner():
|
||||
async def _concurrently_execute_inner():
|
||||
try:
|
||||
while True:
|
||||
yield func(next(it))
|
||||
await maybe_awaitable(func(next(it)))
|
||||
except StopIteration:
|
||||
pass
|
||||
|
||||
|
|
Loading…
Reference in a new issue