diff options
-rw-r--r-- | migration-tcp.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/migration-tcp.c b/migration-tcp.c index 698cd05d97..f13dc0da7d 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; } |