Index: src/trusted/nonnacl_util/win/sel_ldr_launcher_win.cc |
=================================================================== |
--- src/trusted/nonnacl_util/win/sel_ldr_launcher_win.cc (revision 6725) |
+++ src/trusted/nonnacl_util/win/sel_ldr_launcher_win.cc (working copy) |
@@ -26,6 +26,15 @@ |
SelLdrLauncher::~SelLdrLauncher() { |
CloseHandlesAfterLaunch(); |
if (kInvalidHandle != child_process_) { |
+ // Ensure child process (service runtime) is kaput. NB: we might |
+ // close the command channel (or use the hard_shutdown RPC) rather |
+ // than killing the process to allow the service runtime to do |
+ // clean up, but the plugin should be responsible for that and we |
+ // shouldn't introduce any timeout wait in a dtor. Currently, |
+ // ServiceRuntime::Shutdown kills the subprocess before closing |
+ // the command channel, so we aren't providing the opportunity for |
+ // a more graceful shutdown. |
+ KillChildProcess(); |
CloseHandle(child_process_); |
} |
if (kInvalidHandle != channel_) { |