Message ID | 002901cd3980$b8d4e6d0$2a7eb470$@Dovgaluk@ispras.ru |
---|---|
State | New |
Headers | show |
Am 24.05.2012 09:42, schrieb Pavel Dovgaluk: > Prevent disk data loss when closing qemu console window > under Windows 7. > > Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@gmail.com> > --- > os-win32.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/os-win32.c b/os-win32.c > index ad76370..66c39b8 100644 > --- a/os-win32.c > +++ b/os-win32.c > @@ -57,7 +57,11 @@ 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(10000); How do we know that 10000 is enough? Shouldn't we rather block until receipt of some completion signal? Andreas > + > return TRUE; > } >
Il 24/05/2012 14:49, Andreas Färber ha scritto: >> > - 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(10000); > How do we know that 10000 is enough? Shouldn't we rather block until > receipt of some completion signal? After 10s Windows will kill us anyway. Think of it as SIGTERM/SIGKILL. Using a completion signal would be more polite (the QEMU process would disappear as soon as possible), but the outcome would be the same. Paolo
diff --git a/os-win32.c b/os-win32.c index ad76370..66c39b8 100644 --- a/os-win32.c +++ b/os-win32.c @@ -57,7 +57,11 @@ 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(10000); + return TRUE; }
Prevent disk data loss when closing qemu console window under Windows 7. Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@gmail.com> --- os-win32.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)