Skip to content

GWin32AppInfo: Use a thread for async appinfo tree rebuilds

LRN requested to merge lrn/glib:appinfo-shellany-thread into master

Previously the AppInfo data was gathered synchronously, blocking the main thread for some time (hundreds of milliseconds until recently; up to 1 second since the non-open verb support landed). It does not seem to be possible to collect the information faster (the only alternative is to not to collect it all in advance, but do limited lookups as needed; whether that can be done while maintaining the feature set we aim at is an open question), we work around that by building the info tree asynchronously, in a thread. This requires minimal changes to the code, since the tree is already mutex-protected (because even before this the tree could have been read and re-built from different threads; a lock ensured that only one thread could do anything with it at one point of time).

Merge request reports