Skip to content

Commit

Permalink
Leak the JavascriptEnvironment on exit
Browse files Browse the repository at this point in the history
This is to work around the bug that V8 would be waiting for background
tasks to finish on exit, while somehow it waits forever in Electron, more
about this can be found at electron#4767.

On the other handle there is actually no need to gracefully shutdown V8
on exit in the main process, we already ensured all necessary resources get
cleaned up, and it would make quitting faster.
  • Loading branch information
zcbenz committed Mar 14, 2016
1 parent 92a9c49 commit 9a13d55
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions atom/browser/atom_browser_main_parts.cc
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ AtomBrowserMainParts::AtomBrowserMainParts()
}

AtomBrowserMainParts::~AtomBrowserMainParts() {
// Leak the JavascriptEnvironment on exit.
// This is to work around the bug that V8 would be waiting for background
// tasks to finish on exit, while somehow it waits forever in Electron, more
// about this can be found at https://github.com/atom/electron/issues/4767.
// On the other handle there is actually no need to gracefully shutdown V8
// on exit in the main process, we already ensured all necessary resources get
// cleaned up, and it would make quitting faster.
ignore_result(js_env_.release());
}

// static
Expand Down Expand Up @@ -172,14 +180,6 @@ void AtomBrowserMainParts::PostMainMessageLoopRun() {
++iter;
callback.Run();
}

// Destroy JavaScript environment immediately after running destruction
// callbacks.
gc_timer_.Stop();
node_debugger_.reset();
atom_bindings_.reset();
node_bindings_.reset();
js_env_.reset();
}

} // namespace atom

0 comments on commit 9a13d55

Please sign in to comment.