From 63c0095efb2133484c6c87c0b37611384a99bce4 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 7 Dec 2015 16:45:49 -0800 Subject: [PATCH] Emit process exit event with app exit code --- atom/browser/api/atom_api_app.cc | 2 +- atom/browser/api/lib/app.coffee | 12 ++++++++++++ atom/browser/lib/init.coffee | 6 ------ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/atom/browser/api/atom_api_app.cc b/atom/browser/api/atom_api_app.cc index 697d6ec..0c36235 100644 --- a/atom/browser/api/atom_api_app.cc +++ b/atom/browser/api/atom_api_app.cc @@ -344,7 +344,7 @@ mate::ObjectTemplateBuilder App::GetObjectTemplateBuilder( auto browser = base::Unretained(Browser::Get()); return mate::ObjectTemplateBuilder(isolate) .SetMethod("quit", base::Bind(&Browser::Quit, browser)) - .SetMethod("exit", base::Bind(&Browser::Exit, browser)) + .SetMethod("_exit", base::Bind(&Browser::Exit, browser)) .SetMethod("focus", base::Bind(&Browser::Focus, browser)) .SetMethod("getVersion", base::Bind(&Browser::GetVersion, browser)) .SetMethod("setVersion", base::Bind(&Browser::SetVersion, browser)) diff --git a/atom/browser/api/lib/app.coffee b/atom/browser/api/lib/app.coffee index d0ec41c..fc0a782 100644 --- a/atom/browser/api/lib/app.coffee +++ b/atom/browser/api/lib/app.coffee @@ -34,6 +34,18 @@ app.setAppPath = (path) -> app.getAppPath = -> appPath +appExitCode = undefined +app.exit = (exitCode) -> + appExitCode = exitCode + app._exit(exitCode) + +# Map process.exit to app.exit, which quits gracefully. +process.exit = app.exit + +# Emit a process 'exit' event on app quit. +app.on 'quit', -> + process.emit 'exit', appExitCode + # Routes the events to webContents. for name in ['login', 'certificate-error', 'select-client-certificate'] do (name) -> diff --git a/atom/browser/lib/init.coffee b/atom/browser/lib/init.coffee index 85faf0f..9487849 100644 --- a/atom/browser/lib/init.coffee +++ b/atom/browser/lib/init.coffee @@ -51,13 +51,7 @@ process.on 'uncaughtException', (error) -> message = "Uncaught Exception:\n#{stack}" dialog.showErrorBox 'A JavaScript error occurred in the main process', message -# Emit 'exit' event on quit. {app} = require 'electron' -app.on 'quit', -> - process.emit 'exit' - -# Map process.exit to app.exit, which quits gracefully. -process.exit = app.exit # Load the RPC server. require './rpc-server' -- 2.7.4