aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>2012-05-30 10:08:04 +0400
committerKevin Wolf <kwolf@redhat.com>2012-06-15 14:03:42 +0200
commitb75a02829dde98723dfe16fa098338cb267b28b9 (patch)
tree2ff2efe88db5c273ba84454d99b3a366eab8f754
parent79d21d5b8d986051169cc44557750bfc640559b1 (diff)
downloadqemu-b75a02829dde98723dfe16fa098338cb267b28b9.zip
qemu-b75a02829dde98723dfe16fa098338cb267b28b9.tar.gz
qemu-b75a02829dde98723dfe16fa098338cb267b28b9.tar.bz2
Prevent disk data loss when closing qemu
Prevent disk data loss when closing qemu console window under Windows 7. v3. Comment for Sleep() parameter was updated. Signed-off-by: Pavel Dovgalyuk<pavel.dovgaluk@gmail.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r--os-win32.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/os-win32.c b/os-win32.c
index ad76370..13892ba 100644
--- a/os-win32.c
+++ b/os-win32.c
@@ -57,7 +57,13 @@ int setenv(const char *name, const char *value, int overwrite)
static BOOL WINAPI qemu_ctrl_handler(DWORD type)
{
- exit(STATUS_CONTROL_C_EXIT);
+ qemu_system_shutdown_request();
+ /* Windows 7 kills application when the function returns.
+ Sleep here to give QEMU a try for closing.
+ Sleep period is 10000ms because Windows kills the program
+ after 10 seconds anyway. */
+ Sleep(10000);
+
return TRUE;
}