[evolution-data-server] Bug 793031 - Decrease memory usage by disabling backend-per-process by default
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Bug 793031 - Decrease memory usage by disabling backend-per-process by default
- Date: Fri, 23 Feb 2018 11:23:47 +0000 (UTC)
commit 2b058c94b083949c9376d9ce238e09478f66af5b
Author: Milan Crha <mcrha redhat com>
Date: Fri Feb 23 12:24:07 2018 +0100
Bug 793031 - Decrease memory usage by disabling backend-per-process by default
CMakeLists.txt | 2 +-
src/libebackend/e-data-factory.c | 29 ++++++++++++++++++++---------
2 files changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0593719..59d4dbf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -463,7 +463,7 @@ endif(ENABLE_UOA)
# Check if backend per process should be enabled
# **********************************************
-add_printable_option(ENABLE_BACKEND_PER_PROCESS "Enable backend per process support" ON)
+add_printable_option(ENABLE_BACKEND_PER_PROCESS "Enable backend per process support" OFF)
# ***********************************
# Check for libsecret and gcr-base
diff --git a/src/libebackend/e-data-factory.c b/src/libebackend/e-data-factory.c
index 26faa6a..0da6628 100644
--- a/src/libebackend/e-data-factory.c
+++ b/src/libebackend/e-data-factory.c
@@ -286,14 +286,9 @@ data_factory_subprocess_data_free (DataFactorySubprocessData *sd)
}
}
-static gchar *
-data_factory_dup_subprocess_helper_hash_key (gint override_backend_per_process,
- const gchar *factory_name,
- const gchar *extension_name,
- const gchar *uid,
- gboolean backend_factory_share_subprocess)
+static gboolean
+data_factory_use_backend_per_process (gint override_backend_per_process)
{
- gchar *helper_hash_key;
gboolean backend_per_process;
if (override_backend_per_process == 0 || override_backend_per_process == 1) {
@@ -306,7 +301,19 @@ data_factory_dup_subprocess_helper_hash_key (gint override_backend_per_process,
#endif
}
- if (backend_per_process) {
+ return backend_per_process;
+}
+
+static gchar *
+data_factory_dup_subprocess_helper_hash_key (gint override_backend_per_process,
+ const gchar *factory_name,
+ const gchar *extension_name,
+ const gchar *uid,
+ gboolean backend_factory_share_subprocess)
+{
+ gchar *helper_hash_key;
+
+ if (data_factory_use_backend_per_process (override_backend_per_process)) {
helper_hash_key = backend_factory_share_subprocess ?
g_strdup (factory_name) : g_strdup_printf ("%s:%s:%s", factory_name, extension_name,
uid);
} else {
@@ -1268,6 +1275,8 @@ data_factory_spawn_subprocess_backend (EDataFactory *data_factory,
g_free (backend_name);
if (backend_factory) {
+ gboolean backend_per_process;
+
type_name = G_OBJECT_TYPE_NAME (backend_factory);
class = E_DATA_FACTORY_GET_CLASS (data_factory);
@@ -1333,11 +1342,13 @@ data_factory_spawn_subprocess_backend (EDataFactory *data_factory,
g_hash_table_insert (priv->subprocess_watched_ids, g_strdup (sd->bus_name), GUINT_TO_POINTER
(watched_id));
g_mutex_unlock (&priv->subprocess_watched_ids_lock);
+ backend_per_process = data_factory_use_backend_per_process
(e_data_factory_get_backend_per_process (data_factory));
+
subprocess = g_subprocess_new (
G_SUBPROCESS_FLAGS_NONE,
&error,
subprocess_path,
- "--factory", sd->factory_name,
+ "--factory", backend_per_process ? sd->factory_name : "all",
"--bus-name", sd->bus_name,
"--own-path", sd->path,
NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]