DescriptionNaCl plugin: Make ServiceRuntime::Shutdown() kill the NaCl loader
Previously, Shutdown would kill the loader by closing the SRPC command
channel. After SRPC removal, it became a no-op. But this caused a
deadlock in some cases where surfaway or embed element removal would
cause the PNaCl translator to block waiting to join the translation
thread while the translator nexe was waiting for more data. This change
makes the original shutdown sequence work as intended by making
ServiceRuntime::Shutdown() close the trusted plugin IPC channel, which
causes the service runtime to immediately exit.
1. This pokes a sort of arbitrary hole in the PPBNaClPrivate interface
but that interface is vestigial anyway.
2. Even aside from PPBNaClPrvate, there is a lot that could be simplified
or refactored about shutdown post-SRPC, but this is a minimal change
to fix the deadlock that users are experiencing, so we can get it
on a branch.
R=bbudge
BUG=645688
Committed: https://crrev.com/61ef841a46679445e532906eba407e4ba7ecda8e
Cr-Commit-Position: refs/heads/master@{#437418}
Patch Set 1 #Patch Set 2 : Fix include rules #Patch Set 3 : Make direct PPBNaClPrivate interface rather than leaking class through it #Patch Set 4 : Make direct PPBNaClPrivate interface rather than leaking class through it #Patch Set 5 #
Total comments: 9
Patch Set 6 : review #
Messages
Total messages: 26 (19 generated)
|