[gnome-software] Do the PackageKit refresh as a background transaction
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Do the PackageKit refresh as a background transaction
- Date: Mon, 25 Apr 2016 12:52:51 +0000 (UTC)
commit 6d6e4dcdb9a716ce515c689308a9070ba5130c02
Author: Richard Hughes <richard hughsie com>
Date: Mon Apr 25 13:37:15 2016 +0100
Do the PackageKit refresh as a background transaction
This means we don't block foreground actions like resolve, install and remove.
src/plugins/gs-plugin-packagekit-refresh.c | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
---
diff --git a/src/plugins/gs-plugin-packagekit-refresh.c b/src/plugins/gs-plugin-packagekit-refresh.c
index b3998f2..5152cc9 100644
--- a/src/plugins/gs-plugin-packagekit-refresh.c
+++ b/src/plugins/gs-plugin-packagekit-refresh.c
@@ -60,6 +60,8 @@ gs_plugin_initialize (GsPlugin *plugin)
{
GsPluginData *priv = gs_plugin_alloc_data (plugin, sizeof(GsPluginData));
priv->task = pk_task_new ();
+ pk_task_set_only_download (priv->task, TRUE);
+ pk_client_set_background (PK_CLIENT (priv->task), TRUE);
pk_client_set_interactive (PK_CLIENT (priv->task), FALSE);
}
@@ -155,7 +157,6 @@ gs_plugin_refresh (GsPlugin *plugin,
/* download all the packages themselves */
if (flags & GS_PLUGIN_REFRESH_FLAGS_PAYLOAD) {
- PkBitfield transaction_flags;
g_auto(GStrv) package_ids = NULL;
g_autoptr(PkPackageSack) sack = NULL;
g_autoptr(PkResults) results2 = NULL;
@@ -164,14 +165,12 @@ gs_plugin_refresh (GsPlugin *plugin,
if (pk_package_sack_get_size (sack) == 0)
return TRUE;
package_ids = pk_package_sack_get_ids (sack);
- transaction_flags = pk_bitfield_value (PK_TRANSACTION_FLAG_ENUM_ONLY_DOWNLOAD);
gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_WAITING);
- results2 = pk_client_update_packages (PK_CLIENT (priv->task),
- transaction_flags,
- package_ids,
- cancellable,
- gs_plugin_packagekit_progress_cb, &data,
- error);
+ results2 = pk_task_update_packages_sync (priv->task,
+ package_ids,
+ cancellable,
+ gs_plugin_packagekit_progress_cb, &data,
+ error);
if (results2 == NULL) {
gs_plugin_packagekit_convert_gerror (error);
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]