Move win32 early signal handling setup to os_setup_signal_handling()
Move win32 early signal handling setup to os_setup_signal_handling() Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Acked-by: Juan Quintela <quintela@redhat.com> Acked-by: Richard Henderson <rth@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
86b645e753
commit
69bd73b1b0
4 changed files with 31 additions and 32 deletions
29
os-win32.c
29
os-win32.c
|
|
@ -152,3 +152,32 @@ void os_host_main_loop_wait(int *timeout)
|
|||
|
||||
*timeout = 0;
|
||||
}
|
||||
|
||||
static BOOL WINAPI qemu_ctrl_handler(DWORD type)
|
||||
{
|
||||
exit(STATUS_CONTROL_C_EXIT);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void os_setup_signal_handling(void)
|
||||
{
|
||||
/* Note: cpu_interrupt() is currently not SMP safe, so we force
|
||||
QEMU to run on a single CPU */
|
||||
HANDLE h;
|
||||
DWORD mask, smask;
|
||||
int i;
|
||||
|
||||
SetConsoleCtrlHandler(qemu_ctrl_handler, TRUE);
|
||||
|
||||
h = GetCurrentProcess();
|
||||
if (GetProcessAffinityMask(h, &mask, &smask)) {
|
||||
for(i = 0; i < 32; i++) {
|
||||
if (mask & (1 << i))
|
||||
break;
|
||||
}
|
||||
if (i != 32) {
|
||||
mask = 1 << i;
|
||||
SetProcessAffinityMask(h, mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue