[commands] Correct concurrency never releasing during prepare call

This commit is contained in:
Dan Hess 2020-12-26 19:58:58 -06:00 committed by GitHub
parent ef67b56fc6
commit faffc8eeb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -781,14 +781,19 @@ class Command(_BaseCommand):
if self._max_concurrency is not None: if self._max_concurrency is not None:
await self._max_concurrency.acquire(ctx) await self._max_concurrency.acquire(ctx)
if self.cooldown_after_parsing: try:
await self._parse_arguments(ctx) if self.cooldown_after_parsing:
self._prepare_cooldowns(ctx) await self._parse_arguments(ctx)
else: self._prepare_cooldowns(ctx)
self._prepare_cooldowns(ctx) else:
await self._parse_arguments(ctx) self._prepare_cooldowns(ctx)
await self._parse_arguments(ctx)
await self.call_before_hooks(ctx) await self.call_before_hooks(ctx)
except:
if self._max_concurrency is not None:
await self._max_concurrency.release(ctx)
raise
def is_on_cooldown(self, ctx): def is_on_cooldown(self, ctx):
"""Checks whether the command is currently on cooldown. """Checks whether the command is currently on cooldown.