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 <aliguori@us.ibm.com>



git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5640 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
aliguori 2008-11-06 15:30:22 +00:00
parent 978d5d73ed
commit 825a4929da

View file

@ -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;
}