|  | Commit message (Collapse) | Author | Age | Lines | 
|---|
| ... |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | |\ \ \ \ \  
| | |_|_|_|_|_|/ / / / /  
| |/| | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | 
| | | | | | | | | | | | 
| | | | | | | | | | | | 
| | | | | | | | | | | | 
| | | | | | | | | | | | | To keep everything at one place, moved all branding manager special
things to one module. | 
| | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | 
| | | | | | | | | | | | 
| | | | | | | | | | | | | Co-authored-by: Dennis Pham <[email protected]> | 
| | | | | | | | | | | | | |  | 
| | | | | | | | |\ \ \ \ \ |  | 
| | | | | | | | | | | | | | |  | 
| | | | | | | | |\ \ \ \ \ \  
| | | | | | | |/ / / / / /  
| | | | | | |/| | | | | | |  | 
| | | | | | | | | | | | | | |  | 
| | | | | | | | |\ \ \ \ \ \ |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | |\ \ \ \ |  | 
| | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | If asyncio's debug mode is enabled, the asyncio logger's level gets set
to DEBUG. While other features of the debug mode are useful, the DEBUG
log level spams generally irrelevant stuff. | 
| | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | Place a channel-specific lock on `unclaim_channel`. If both the dormant
task and the command simultaneously unclaim a channel, one of them will
silently be aborted.
Fix #1341 | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | Booleans are less error-prone than strings. | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | Ensure the cancellation will be under the lock once the lock is added. | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | Referencing internal functions in public-facing documentation is not
helpful to users. | 
| | | | | | | | | | | | | | | | |  | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | If the lock causes the function to abort, a new channel shouldn't be
made available. However, the only way to know it's aborted from the
outside would be through a return value or global variable. Neither seem
as nice as just just using `create_task` within the lock to avoid
having `move_to_available` hold the lock. | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | Normally exceptions are only logged when tasks are garbage collected.
This wrapper will allow them to be logged immediately through a done
callback. This is similar to how the Scheduler logs errors. | 
| | | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | 
| | | | | | | | | | | | | | | | The race condition is when a user claims a channel while their other
channel is being unclaimed. Specifically, it's while their cooldown is
being removed.
The lock ensures that either the cooldown will be re-applied after it's
removed or that it won't be removed since `unclaim_channel` will see the
user has another claimed channel. |