Skip to content

Commit

Permalink
Fasten up models list refresh with asyncio.gather
Browse files Browse the repository at this point in the history
  • Loading branch information
Insoleet committed Jan 29, 2016
1 parent 9ea7c38 commit cf9514b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
8 changes: 6 additions & 2 deletions src/sakia/models/identities.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,13 @@ async def refresh_identities(self, identities):
self.endResetModel()
self.beginResetModel()
identities_data = []
requests_coro = []
for identity in identities:
data = await self.identity_data(identity)
identities_data.append(data)
coro = asyncio.ensure_future(self.identity_data(identity))
requests_coro.append(coro)

identities_data = await asyncio.gather(*requests_coro)

if len(identities) > 0:
try:
parameters = await self.community.parameters()
Expand Down
17 changes: 11 additions & 6 deletions src/sakia/models/txhistory.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,17 +300,22 @@ async def refresh_transfers(self):
self.beginResetModel()
transfers_data = []
if self.community:
requests_coro = []
for transfer in self.transfers():
data = None
coro = None
if type(transfer) is Transfer:
if transfer.metadata['issuer'] == self.account.pubkey:
data = await self.data_sent(transfer)
coro = asyncio.ensure_future(self.data_sent(transfer))
else:
data = await self.data_received(transfer)
coro = asyncio.ensure_future(self.data_received(transfer))
elif type(transfer) is dict:
data = await self.data_dividend(transfer)
if data:
transfers_data.append(data)
coro = asyncio.ensure_future(self.data_dividend(transfer))
if coro:
requests_coro.append(coro)

data_list = await asyncio.gather(*requests_coro)
for data in data_list:
transfers_data.append(data)
self.transfers_data = transfers_data
self.endResetModel()

Expand Down

0 comments on commit cf9514b

Please sign in to comment.