Merge branch 'disco-tasks' into 'master'

xep_0030: asyncio.wait takes tasks

See merge request poezio/slixmpp!228
This commit is contained in:
Maxime Buquet 2023-03-07 19:19:10 +00:00
commit bc2cebae6c

View File

@ -315,13 +315,13 @@ class XEP_0030(BasePlugin):
domain = self.xmpp.boundjid.domain domain = self.xmpp.boundjid.domain
if not cached or domain not in self.domain_infos: if not cached or domain not in self.domain_infos:
infos = [self.get_info( infos = [asyncio.create_task(self.get_info(
domain, timeout=timeout, **iqkwargs)] domain, timeout=timeout, **iqkwargs))]
iq_items = await self.get_items( iq_items = await self.get_items(
domain, timeout=timeout, **iqkwargs) domain, timeout=timeout, **iqkwargs)
items = iq_items['disco_items']['items'] items = iq_items['disco_items']['items']
infos += [ infos += [
self.get_info(item[0], timeout=timeout, **iqkwargs) asyncio.create_task(self.get_info(item[0], timeout=timeout, **iqkwargs))
for item in items] for item in items]
info_futures, _ = await asyncio.wait( info_futures, _ = await asyncio.wait(
infos, infos,