[gnome-software/ramcq/ioprio: 28/28] lib: set long-running plugin workers threads to idle IO priority
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/ramcq/ioprio: 28/28] lib: set long-running plugin workers threads to idle IO priority
- Date: Fri, 21 Sep 2018 08:18:23 +0000 (UTC)
commit 59b40d256eed13b9b75e62b1ff4655f8d219db66
Author: Robert McQueen <rob endlessm com>
Date: Fri Sep 7 14:11:52 2018 +0100
lib: set long-running plugin workers threads to idle IO priority
Use the newly-added gs_ioprio_init() function for the plugin tasks which are
run on threads from our worker pool. This allows us to succinctly set all
potentially IO-intensive long-running operations (install, update, etc) to this
priority as these are run in the pool. Interactive tasks such as refreshes etc
are unaffected as their GTasks are run on new threads. This also means we don't
need to worry about restoring the thread priorities, as we know all threads in
this pool will not be re-used for any other workload.
lib/gs-plugin-loader.c | 3 +++
1 file changed, 3 insertions(+)
---
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
index 02792f2c..6a6d5c81 100644
--- a/lib/gs-plugin-loader.c
+++ b/lib/gs-plugin-loader.c
@@ -31,6 +31,7 @@
#include "gs-app-private.h"
#include "gs-app-list-private.h"
#include "gs-category-private.h"
+#include "gs-ioprio.h"
#include "gs-plugin-loader.h"
#include "gs-plugin.h"
#include "gs-plugin-event.h"
@@ -3453,6 +3454,8 @@ gs_plugin_loader_process_in_thread_pool_cb (gpointer data,
gpointer task_data = g_task_get_task_data (task);
GCancellable *cancellable = g_task_get_cancellable (task);
+ gs_ioprio_init ();
+
gs_plugin_loader_process_thread_cb (task, source_object, task_data, cancellable);
g_object_unref (task);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]