aboutsummaryrefslogtreecommitdiff
path: root/discord/ui
diff options
context:
space:
mode:
authorRapptz <[email protected]>2021-05-31 05:47:46 -0400
committerRapptz <[email protected]>2021-05-31 05:50:40 -0400
commitd0097c4281af7aa863e746e977a68517ddaba03b (patch)
tree28564dd01423aeb908fc329158f305415684febc /discord/ui
parentCheck for view finished state before resuming listening on edit (diff)
downloaddiscord.py-d0097c4281af7aa863e746e977a68517ddaba03b.tar.xz
discord.py-d0097c4281af7aa863e746e977a68517ddaba03b.zip
Remove view syncing before editing in views
This prevents a potential race condition when a MESSAGE_UPDATE is received syncing and refreshing the view components causing a desync.
Diffstat (limited to 'discord/ui')
-rw-r--r--discord/ui/view.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/discord/ui/view.py b/discord/ui/view.py
index 13016a8e..4df899ed 100644
--- a/discord/ui/view.py
+++ b/discord/ui/view.py
@@ -409,6 +409,9 @@ class ViewStore:
def is_message_tracked(self, message_id: int):
return message_id in self._synced_message_views
+ def remove_message_tracking(self, message_id: int) -> Optional[View]:
+ return self._synced_message_views.pop(message_id, None)
+
def update_from_message(self, message_id: int, components: List[ComponentPayload]):
# pre-req: is_message_tracked == true
view = self._synced_message_views[message_id]