summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Dovgaluk <Pavel.Dovgaluk@ispras.ru>2012-05-30 10:08:04 +0400
committerMichael Roth <mdroth@linux.vnet.ibm.com>2012-06-25 08:55:33 -0500
commitee7735fa639c43ccb3746d84609332e48e22479f (patch)
treea1a949ff1a32639ea3f3246be044daa6703e2939
parent02fe741375d4993b3d6870ff6466cc775b409ba1 (diff)
downloadqemu-ee7735fa639c43ccb3746d84609332e48e22479f.tar.gz
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> (cherry picked from commit b75a02829dde98723dfe16fa098338cb267b28b9) Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.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 ad76370c7c..13892ba320 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;
}