DescriptionKill pnacl translation processes immediately on coordinator error and destruction
On errors and destruction, use the service_runtime object in the subprocess
to kill the translator processes immediately rather than just signaling the
translation thread, which may be blocked on an RPC.
Any pending or new RPC calls will fail immediately, and the translation thread
can simply bail.
This makes destruction/surfaway much faster and more responsive and simplifies
error handling and object cleanup. The only caveat is that now the translation
thread and NaClSubprocess must be careful not to race service runtime operations
(which are protected by subprocess_mu_) with RPCs (which are called
without a mutex because they block). This is currently already ensured because
srpc_client is a separate object from service_runtime in NaClSubprocess.
R=sehr@chromium.org,jvoung@chromium.org,robertm@chromium.org
BUG= http://code.google.com/p/nativeclient/issues/detail?id=2195
TEST=nacl_integration (especially pnacl_bad_browser_test)
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=149982
Patch Set 1 #Patch Set 2 : #
Total comments: 4
Patch Set 3 : ensure idempotency #Patch Set 4 : rebase #Patch Set 5 : re-rebase #Patch Set 6 : fix #Patch Set 7 : #
Messages
Total messages: 8 (0 generated)
|