Handle CTRL_CLOSE_EVENT on Windows (#2952)
This allows us to terminate gracefully when console window is closed. Mostly relevant for portable builds.
This commit is contained in:
parent
ecc7f2a521
commit
4fd6c66edb
1 changed files with 14 additions and 0 deletions
14
src/main.cpp
14
src/main.cpp
|
|
@ -71,6 +71,15 @@ SessionMonitorWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
|
||||||
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WINAPI BOOL
|
||||||
|
ConsoleCtrlHandler(DWORD type) {
|
||||||
|
if (type == CTRL_CLOSE_EVENT) {
|
||||||
|
BOOST_LOG(info) << "Console closed handler called";
|
||||||
|
lifetime::exit_sunshine(0, false);
|
||||||
|
}
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -244,6 +253,11 @@ main(int argc, char *argv[]) {
|
||||||
shutdown_event->raise(true);
|
shutdown_event->raise(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
// Terminate gracefully on Windows when console window is closed
|
||||||
|
SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE);
|
||||||
|
#endif
|
||||||
|
|
||||||
proc::refresh(config::stream.file_apps);
|
proc::refresh(config::stream.file_apps);
|
||||||
|
|
||||||
// If any of the following fail, we log an error and continue event though sunshine will not function correctly.
|
// If any of the following fail, we log an error and continue event though sunshine will not function correctly.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue