aboutsummaryrefslogtreecommitdiff
path: root/discord/state.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2020-01-28 23:56:46 -0500
committerRapptz <[email protected]>2020-01-28 23:56:46 -0500
commit5c7df3d943c899356a47960d23060c5f0e8db0f8 (patch)
treeef70071aa69431943f4dae1e42bd5dba62714e91 /discord/state.py
parentVersion bump to v1.3.1 (diff)
downloaddiscord.py-5c7df3d943c899356a47960d23060c5f0e8db0f8.tar.xz
discord.py-5c7df3d943c899356a47960d23060c5f0e8db0f8.zip
Bump waiting time of GUILD_CREATE stream by number of shards waited.
2 seconds might be too short and cause it to finish waiting while other shards are still IDENTIFYing.
Diffstat (limited to 'discord/state.py')
-rw-r--r--discord/state.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/discord/state.py b/discord/state.py
index 738495a2..e4ecdc45 100644
--- a/discord/state.py
+++ b/discord/state.py
@@ -1029,6 +1029,7 @@ class AutoShardedConnectionState(ConnectionState):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._ready_task = None
+ self.shard_ids = ()
async def request_offline_members(self, guilds, *, shard_id):
# get all the chunks
@@ -1051,10 +1052,10 @@ class AutoShardedConnectionState(ConnectionState):
async def _delay_ready(self):
launch = self._ready_state.launch
while True:
- # this snippet of code is basically waiting 2 seconds
+ # this snippet of code is basically waiting 2 * shard_ids seconds
# until the last GUILD_CREATE was sent
try:
- await asyncio.wait_for(launch.wait(), timeout=2.0)
+ await asyncio.wait_for(launch.wait(), timeout=2.0 * len(self.shard_ids))
except asyncio.TimeoutError:
break
else: