~lutris-team/lutris/+git/lutris:dj/asyncio_by_hand

Last commit made on 2023-12-26
Get this branch:
git clone -b dj/asyncio_by_hand https://git.launchpad.net/~lutris-team/lutris/+git/lutris

Branch merges

Branch information

Name:
dj/asyncio_by_hand
Repository:
lp:~lutris-team/lutris/+git/lutris

Recent commits

87dc0c3... by Daniel Johnson <email address hidden>

Eliminate janky Downloader.join() in favor of join_async()

15cbb3f... by Daniel Johnson <email address hidden>

Download runners using run_async(); heed the cancellation flag on the way out too.

This needs an async join() on the Downloader, and that's a bit dicey- getting the sync join() to work is a hack.

214ef2f... by Daniel Johnson <email address hidden>

Add an async version of Gtk.Dialog.run(), run_async()

This allows asyncio processing to continue while a modal dialog is shown, without shenanigans.

3ef61b8... by Daniel Johnson <email address hidden>

Replace gblug with a custom loop and hackery. Some code taken from PyChess, but they are GPL 3 also so that's okay.

08c5ade... by Daniel Johnson <email address hidden>

Simplify the _iter_commands_async() loop.

fa8022e... by Daniel Johnson <email address hidden>

Convert download_lutris_media to be async

That's the last free usage of AsyncCall!

7b13431... by Daniel Johnson <email address hidden>

Convert the UI delegate interaction methos to be async.

They still need to go to idle time to access the UI though.

This commit just stashes the running loop in a global variable because asyncio is very awkward about this. We only ever have one anyway.

43f2998... by Daniel Johnson <email address hidden>

Simplify some method signatures

1a54c6a... by Daniel Johnson <email address hidden>

Convert _iter_commands() into an async method with a loop.

This means various tasks must not return "STOP" but rather a future or co-routine to be awaited in the loop.

1c25c9f... by Daniel Johnson <email address hidden>

Use asyncio to load Vulkan GPU names