Kill 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) Review URL: https://chromiumcodereview.appspot.com/10830149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149982 0039d316-1c4b-4281-b951-d872f2087c98
Showing
Please register or sign in to comment