[PATCH spice-gtk 2/5] vmcstream: finish task immediately when reading 0 bytes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The current implementation finishes it
only after new data arrives from the channel (or after it is cancelled).

Signed-off-by: Jakub Janků <jjanku@xxxxxxxxxx>
---
 src/vmcstream.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/vmcstream.c b/src/vmcstream.c
index 86c949a..451d06e 100644
--- a/src/vmcstream.c
+++ b/src/vmcstream.c
@@ -201,14 +201,21 @@ spice_vmc_input_stream_read_all_async(GInputStream        *stream,
 
     /* no concurrent read permitted by ginputstream */
     g_return_if_fail(self->task == NULL);
-    self->all = TRUE;
-    self->buffer = buffer;
-    self->count = count;
-    self->pos = 0;
+
     task = g_task_new(self,
                       cancellable,
                       callback,
                       user_data);
+    if (count == 0) {
+        g_task_return_int(task, 0);
+        g_object_unref(task);
+        return;
+    }
+
+    self->all = TRUE;
+    self->buffer = buffer;
+    self->count = count;
+    self->pos = 0;
     self->task = task;
     if (cancellable)
         self->cancel_id =
-- 
2.21.0

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]