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);
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
int
|
||||
|
|
@ -244,6 +253,11 @@ main(int argc, char *argv[]) {
|
|||
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);
|
||||
|
||||
// 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