Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(105)

Side by Side Diff: ppapi/native_client/src/trusted/plugin/pnacl_streaming_translate_thread.cc

Issue 10815080: Add an interface for nacl to create delete-on-close temp files, (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "native_client/src/trusted/plugin/pnacl_streaming_translate_thread.h" 5 #include "native_client/src/trusted/plugin/pnacl_streaming_translate_thread.h"
6 6
7 #include "native_client/src/include/nacl_scoped_ptr.h" 7 #include "native_client/src/include/nacl_scoped_ptr.h"
8 #include "native_client/src/trusted/plugin/plugin.h" 8 #include "native_client/src/trusted/plugin/plugin.h"
9 #include "native_client/src/trusted/plugin/pnacl_resources.h" 9 #include "native_client/src/trusted/plugin/pnacl_resources.h"
10 #include "native_client/src/trusted/plugin/srpc_params.h" 10 #include "native_client/src/trusted/plugin/srpc_params.h"
11 #include "native_client/src/trusted/plugin/temporary_file.h"
11 12
12 namespace plugin { 13 namespace plugin {
13 14
14 PnaclStreamingTranslateThread::PnaclStreamingTranslateThread() : done_(false) { 15 PnaclStreamingTranslateThread::PnaclStreamingTranslateThread() : done_(false) {
15 NaClXMutexCtor(&cond_mu_); 16 NaClXMutexCtor(&cond_mu_);
16 NaClXCondVarCtor(&buffer_cond_); 17 NaClXCondVarCtor(&buffer_cond_);
17 } 18 }
18 19
19 PnaclStreamingTranslateThread::~PnaclStreamingTranslateThread() {} 20 PnaclStreamingTranslateThread::~PnaclStreamingTranslateThread() {}
20 21
21 void PnaclStreamingTranslateThread::RunTranslate( 22 void PnaclStreamingTranslateThread::RunTranslate(
22 const pp::CompletionCallback& finish_callback, 23 const pp::CompletionCallback& finish_callback,
23 const Manifest* manifest, 24 const Manifest* manifest,
24 const Manifest* ld_manifest, 25 const Manifest* ld_manifest,
25 LocalTempFile* obj_file, 26 TempFile* obj_file,
26 LocalTempFile* nexe_file, 27 LocalTempFile* nexe_file,
27 ErrorInfo* error_info, 28 ErrorInfo* error_info,
28 PnaclResources* resources, 29 PnaclResources* resources,
29 Plugin* plugin) { 30 Plugin* plugin) {
30 PLUGIN_PRINTF(("PnaclStreamingTranslateThread::RunTranslate)\n")); 31 PLUGIN_PRINTF(("PnaclStreamingTranslateThread::RunTranslate)\n"));
31 manifest_ = manifest; 32 manifest_ = manifest;
32 ld_manifest_ = ld_manifest; 33 ld_manifest_ = ld_manifest;
33 obj_file_ = obj_file; 34 obj_file_ = obj_file;
34 nexe_file_ = nexe_file; 35 nexe_file_ = nexe_file;
35 coordinator_error_info_ = error_info; 36 coordinator_error_info_ = error_info;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 ErrorInfo error_info; 84 ErrorInfo error_info;
84 nacl::scoped_ptr<NaClSubprocess> llc_subprocess( 85 nacl::scoped_ptr<NaClSubprocess> llc_subprocess(
85 StartSubprocess(PnaclUrls::GetLlcUrl(), manifest_, &error_info)); 86 StartSubprocess(PnaclUrls::GetLlcUrl(), manifest_, &error_info));
86 if (llc_subprocess == NULL) { 87 if (llc_subprocess == NULL) {
87 TranslateFailed("Compile process could not be created: " + 88 TranslateFailed("Compile process could not be created: " +
88 error_info.message()); 89 error_info.message());
89 return; 90 return;
90 } 91 }
91 // Run LLC. 92 // Run LLC.
92 SrpcParams params; 93 SrpcParams params;
93 nacl::DescWrapper* llc_out_file = obj_file_->write_wrapper(); 94 nacl::DescWrapper* llc_out_file = obj_file_->get_wrapper();
94 PluginReverseInterface* llc_reverse = 95 // Temporarily disable quota.
95 llc_subprocess->service_runtime()->rev_interface(); 96 PluginReverseInterface* llc_reverse =
brettw 2012/07/27 22:38:17 Check indenting.
jvoung - send to chromium... 2012/07/28 01:30:05 Done.
96 llc_reverse->AddQuotaManagedFile(obj_file_->identifier(), 97 llc_subprocess->service_runtime()->rev_interface();
97 obj_file_->write_file_io()); 98 llc_reverse->AddTempQuotaManagedFile(obj_file_->identifier());
98 99
99 if (!llc_subprocess->InvokeSrpcMethod("StreamInit", 100 if (!llc_subprocess->InvokeSrpcMethod("StreamInit",
100 "h", 101 "h",
101 &params, 102 &params,
102 llc_out_file->desc())) { 103 llc_out_file->desc())) {
103 // StreamInit returns an error message if the RPC fails. 104 // StreamInit returns an error message if the RPC fails.
104 TranslateFailed(nacl::string("Stream init failed: ") + 105 TranslateFailed(nacl::string("Stream init failed: ") +
105 nacl::string(params.outs()[0]->arrays.str)); 106 nacl::string(params.outs()[0]->arrays.str));
106 return; 107 return;
107 } 108 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 } 169 }
169 170
170 void PnaclStreamingTranslateThread::SetSubprocessesShouldDie() { 171 void PnaclStreamingTranslateThread::SetSubprocessesShouldDie() {
171 PnaclTranslateThread::SetSubprocessesShouldDie(); 172 PnaclTranslateThread::SetSubprocessesShouldDie();
172 nacl::MutexLocker ml(&cond_mu_); 173 nacl::MutexLocker ml(&cond_mu_);
173 done_ = true; 174 done_ = true;
174 NaClXCondVarSignal(&buffer_cond_); 175 NaClXCondVarSignal(&buffer_cond_);
175 } 176 }
176 177
177 } // namespace plugin 178 } // namespace plugin
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698