[Spice-devel] [spice-gtk PATCH v3 1/5] giopipe: don't fail on create_source

Victor Toso victortoso at redhat.com
Tue May 26 06:35:46 PDT 2015


PipeInputStream and PipeOutputStream should not fail when creating
GPollableStream source. It is already checked and unref in case of
existing source.

In order to track possible issues, the g_return_val_if_fail was
changed to a g_debug message;
---
 gtk/giopipe.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/gtk/giopipe.c b/gtk/giopipe.c
index 50edb5b..86eaab6 100644
--- a/gtk/giopipe.c
+++ b/gtk/giopipe.c
@@ -234,10 +234,11 @@ pipe_input_stream_create_source (GPollableInputStream *stream,
     PipeInputStream *self = PIPE_INPUT_STREAM(stream);
     GSource *pollable_source;
 
-    g_return_val_if_fail (self->source == NULL ||
-                          g_source_is_destroyed (self->source), NULL);
+    if (self->source != NULL && !g_source_is_destroyed (self->source))
+        g_debug ("%s: GPollableSource already exists %p - This could lead to data loss (%ld)",
+                 G_STRFUNC, self->source, self->read);
 
-    if (self->source && g_source_is_destroyed (self->source))
+    if (self->source)
         g_source_unref (self->source);
 
     pollable_source = g_pollable_source_new_full (self, NULL, cancellable);
@@ -416,10 +417,11 @@ pipe_output_stream_create_source (GPollableOutputStream *stream,
     PipeOutputStream *self = PIPE_OUTPUT_STREAM(stream);
     GSource *pollable_source;
 
-    g_return_val_if_fail (self->source == NULL ||
-                          g_source_is_destroyed (self->source), NULL);
+    if (self->source != NULL && !g_source_is_destroyed (self->source))
+        g_debug ("%s: GPollableSource already exists %p - This could lead to data loss (%ld)",
+                 G_STRFUNC, self->source, self->count);
 
-    if (self->source && g_source_is_destroyed (self->source))
+    if (self->source)
         g_source_unref (self->source);
 
     pollable_source = g_pollable_source_new_full (self, NULL, cancellable);
-- 
2.4.1



More information about the Spice-devel mailing list