From 825a4929dac5d991c384bd9ee18c693458f7f055 Mon Sep 17 00:00:00 2001 From: aliguori Date: Thu, 6 Nov 2008 15:30:22 +0000 Subject: [PATCH] Make sure to resume the monitor only after flushing out outstanding network traffic. This was bug was reported by Chris Lalancette. Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5640 c046a42c-6fe2-441c-8c8c-71466251a162 --- migration-tcp.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/migration-tcp.c b/migration-tcp.c index 698cd05..f13dc0d 100644 --- a/migration-tcp.c +++ b/migration-tcp.c @@ -40,19 +40,11 @@ typedef struct FdMigrationState do { } while (0) #endif -int debug_me = 0; - static void tcp_cleanup(FdMigrationState *s) { - if (s->detach == 2) { - monitor_resume(); - s->detach = 0; - } - qemu_set_fd_handler2(s->fd, NULL, NULL, NULL, NULL); if (s->file) { - debug_me = 1; dprintf("closing file\n"); qemu_fclose(s->file); } @@ -60,6 +52,12 @@ static void tcp_cleanup(FdMigrationState *s) if (s->fd != -1) close(s->fd); + /* Don't resume monitor until we've flushed all of the buffers */ + if (s->detach == 2) { + monitor_resume(); + s->detach = 0; + } + s->fd = -1; } -- 1.7.9.5