gs-plugin-loader: Make setup method asynchronous
This is so that the correct GMainContext
is the thread default when the setup_async()
vfuncs of each plugin are called. Some of them reference the thread-default GMainContext
for later use. That doesn’t work so well when it’s a temporary one created and later destroyed inside gs_plugin_loader_call_setup()
.
See the commit messages for details.
The commits at the head of the branch to change g_idle_*()
usage were to fix latent bugs in the unit tests triggered by the tests now destroying each GsPlugin
when re-loading the GsPluginLoader
.
Signed-off-by: Philip Withnall pwithnall@endlessos.org
Closes #1661 (closed)