[gimp] Bug 790810 - Nested layer groups lead to a deadlock with multithreading
- From: N/A <ell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] Bug 790810 - Nested layer groups lead to a deadlock with multithreading
- Date: Mon, 4 Dec 2017 21:08:38 +0000 (UTC)
commit 4e4c1cd57e3bcd8970def72e9cbaabc215f5f1a2
Author: Ell <ell_se yahoo com>
Date: Mon Dec 4 15:49:43 2017 -0500
Bug 790810 - Nested layer groups lead to a deadlock with multithreading
Use gimp:buffer-source-validate, introduced in the previous commit,
for the source node of GimpDrawables. This avoids threading issues
with layer groups, or any other drawables that may use a validating
buffer, by making sure the buffer is validated before any
succeeding operations, and hence the associated graph is processed
on the same thread as the parent composition.
Restore multithreaded processing in GimpOperationLayerMode.
app/core/gimpdrawable.c | 2 +-
.../layer-modes/gimpoperationlayermode.c | 4 ----
2 files changed, 1 insertions(+), 5 deletions(-)
---
diff --git a/app/core/gimpdrawable.c b/app/core/gimpdrawable.c
index 1c66584..7643362 100644
--- a/app/core/gimpdrawable.c
+++ b/app/core/gimpdrawable.c
@@ -912,7 +912,7 @@ gimp_drawable_real_get_source_node (GimpDrawable *drawable)
drawable->private->buffer_source_node =
gegl_node_new_child (NULL,
- "operation", "gegl:buffer-source",
+ "operation", "gimp:buffer-source-validate",
"buffer", gimp_drawable_get_buffer (drawable),
NULL);
diff --git a/app/operations/layer-modes/gimpoperationlayermode.c
b/app/operations/layer-modes/gimpoperationlayermode.c
index 5309460..f2998ff 100644
--- a/app/operations/layer-modes/gimpoperationlayermode.c
+++ b/app/operations/layer-modes/gimpoperationlayermode.c
@@ -152,10 +152,6 @@ gimp_operation_layer_mode_class_init (GimpOperationLayerModeClass *klass)
klass->process = gimp_operation_layer_mode_real_process;
klass->get_affected_region = NULL;
- /* XXX: temporarily disable multithreaded compositing. see bug #790810. */
- if (! g_getenv ("GIMP_MULTITHREADED_COMPOSITING"))
- operation_class->threaded = FALSE;
-
g_object_class_install_property (object_class, PROP_LAYER_MODE,
g_param_spec_enum ("layer-mode",
NULL, NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]