diff options
author | Fredrik Gustafsson <[email protected]> | 2012-08-27 15:03:54 +0200 |
---|---|---|
committer | Fredrik Gustafsson <[email protected]> | 2012-08-27 15:03:54 +0200 |
commit | e6b62480201b744bbac2d7b07618202c40e2912c (patch) | |
tree | dddd5d0e4e670bc120d709737eeb53e90acca5e8 /erts/etc/win32 | |
parent | c6fc61ffab426cc7b391eb903e7942bda809a230 (diff) | |
parent | 03985084e42e262bac1b7c48a97c31db97348f1d (diff) | |
download | otp-e6b62480201b744bbac2d7b07618202c40e2912c.tar.gz otp-e6b62480201b744bbac2d7b07618202c40e2912c.tar.bz2 otp-e6b62480201b744bbac2d7b07618202c40e2912c.zip |
Merge branch 'jkl/erlsrv-graceful-shutdown/OTP-10228' into maint
* jkl/erlsrv-graceful-shutdown/OTP-10228:
erlsrv: gracefully stop emulator on Windows shutdown
Diffstat (limited to 'erts/etc/win32')
-rw-r--r-- | erts/etc/win32/erlsrv/erlsrv_service.c | 3 | ||||
-rw-r--r-- | erts/etc/win32/port_entry.c | 2 | ||||
-rw-r--r-- | erts/etc/win32/start_erl.c | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/erts/etc/win32/erlsrv/erlsrv_service.c b/erts/etc/win32/erlsrv/erlsrv_service.c index 242e2905a9..8b734b0c05 100644 --- a/erts/etc/win32/erlsrv/erlsrv_service.c +++ b/erts/etc/win32/erlsrv/erlsrv_service.c @@ -104,11 +104,10 @@ static VOID WINAPI handler(DWORD control){ log_debug(buffer); switch(control){ case SERVICE_CONTROL_STOP: + case SERVICE_CONTROL_SHUTDOWN: set_stop_pending(30000,1); SetEvent(eventStop); return; - case SERVICE_CONTROL_SHUTDOWN: - return; default: reset_current(); break; diff --git a/erts/etc/win32/port_entry.c b/erts/etc/win32/port_entry.c index 49b5ad2f34..9c3e750cbc 100644 --- a/erts/etc/win32/port_entry.c +++ b/erts/etc/win32/port_entry.c @@ -45,6 +45,8 @@ extern void mainCRTStartup(void); BOOL WINAPI erl_port_default_handler(DWORD ctrl){ if(ctrl == CTRL_LOGOFF_EVENT) return TRUE; + if(ctrl == CTRL_SHUTDOWN_EVENT) + return TRUE; return FALSE; } diff --git a/erts/etc/win32/start_erl.c b/erts/etc/win32/start_erl.c index 28c8e55bd3..41b221d5bc 100644 --- a/erts/etc/win32/start_erl.c +++ b/erts/etc/win32/start_erl.c @@ -585,6 +585,9 @@ BOOL WINAPI LogoffHandlerRoutine( DWORD dwCtrlType ) if(dwCtrlType == CTRL_LOGOFF_EVENT) { return TRUE; } + if(dwCtrlType == CTRL_SHUTDOWN_EVENT) { + return TRUE; + } return FALSE; } |