| Index: ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h
|
| diff --git a/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h b/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h
|
| deleted file mode 100644
|
| index 45656e7923640da2301d755a8a2acd83c03a57e5..0000000000000000000000000000000000000000
|
| --- a/ppapi/native_client/src/trusted/plugin/pnacl_translate_thread.h
|
| +++ /dev/null
|
| @@ -1,134 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_TRANSLATE_THREAD_H_
|
| -#define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_TRANSLATE_THREAD_H_
|
| -
|
| -#include <deque>
|
| -#include <vector>
|
| -
|
| -#include "native_client/src/include/nacl_macros.h"
|
| -#include "native_client/src/include/nacl_scoped_ptr.h"
|
| -#include "native_client/src/shared/platform/nacl_threads.h"
|
| -#include "native_client/src/shared/platform/nacl_sync_checked.h"
|
| -
|
| -#include "ppapi/cpp/completion_callback.h"
|
| -
|
| -#include "ppapi/native_client/src/trusted/plugin/plugin_error.h"
|
| -#include "ppapi/native_client/src/trusted/plugin/service_runtime.h"
|
| -
|
| -struct PP_PNaClOptions;
|
| -
|
| -namespace nacl {
|
| -class DescWrapper;
|
| -}
|
| -
|
| -
|
| -namespace plugin {
|
| -
|
| -class NaClSubprocess;
|
| -class Plugin;
|
| -class PnaclCoordinator;
|
| -class PnaclResources;
|
| -class TempFile;
|
| -
|
| -class PnaclTranslateThread {
|
| - public:
|
| - PnaclTranslateThread();
|
| - ~PnaclTranslateThread();
|
| -
|
| - // Start the translation process. It will continue to run and consume data
|
| - // as it is passed in with PutBytes.
|
| - void RunTranslate(const pp::CompletionCallback& finish_callback,
|
| - const std::vector<TempFile*>* obj_files,
|
| - TempFile* nexe_file,
|
| - nacl::DescWrapper* invalid_desc_wrapper,
|
| - ErrorInfo* error_info,
|
| - PnaclResources* resources,
|
| - PP_PNaClOptions* pnacl_options,
|
| - const std::string &architecture_attributes,
|
| - PnaclCoordinator* coordinator,
|
| - Plugin* plugin);
|
| -
|
| - // Kill the llc and/or ld subprocesses. This happens by closing the command
|
| - // channel on the plugin side, which causes the trusted code in the nexe to
|
| - // exit, which will cause any pending SRPCs to error. Because this is called
|
| - // on the main thread, the translation thread must not use the subprocess
|
| - // objects without the lock, other than InvokeSrpcMethod, which does not
|
| - // race with service runtime shutdown.
|
| - void AbortSubprocesses();
|
| -
|
| - // Send bitcode bytes to the translator. Called from the main thread.
|
| - void PutBytes(const void* data, int count);
|
| -
|
| - // Notify the translator that the end of the bitcode stream has been reached.
|
| - // Called from the main thread.
|
| - void EndStream();
|
| -
|
| - int64_t GetCompileTime() const { return compile_time_; }
|
| -
|
| - // Returns true if RunTranslate() has been called, false otherwise.
|
| - bool started() const { return plugin_ != NULL; }
|
| -
|
| - private:
|
| - // Helper thread entry point for translation. Takes a pointer to
|
| - // PnaclTranslateThread and calls DoTranslate().
|
| - static void WINAPI DoTranslateThread(void* arg);
|
| - // Runs the streaming translation. Called from the helper thread.
|
| - void DoTranslate() ;
|
| - // Signal that Pnacl translation failed, from the translation thread only.
|
| - void TranslateFailed(PP_NaClError err_code,
|
| - const std::string& error_string);
|
| - // Run the LD subprocess, returning true on success.
|
| - // On failure, it returns false and runs the callback.
|
| - bool RunLdSubprocess();
|
| -
|
| -
|
| - // Callback to run when tasks are completed or an error has occurred.
|
| - pp::CompletionCallback report_translate_finished_;
|
| -
|
| - nacl::scoped_ptr<NaClThread> translate_thread_;
|
| -
|
| - // Used to guard llc_subprocess and ld_subprocess
|
| - struct NaClMutex subprocess_mu_;
|
| - nacl::scoped_ptr<NaClSubprocess> llc_subprocess_;
|
| - nacl::scoped_ptr<NaClSubprocess> ld_subprocess_;
|
| - // Used to ensure the subprocesses don't get shutdown more than once.
|
| - bool llc_subprocess_active_;
|
| - bool ld_subprocess_active_;
|
| -
|
| - bool subprocesses_aborted_;
|
| -
|
| - // Condition variable to synchronize communication with the SRPC thread.
|
| - // SRPC thread waits on this condvar if data_buffers_ is empty (meaning
|
| - // there is no bitcode to send to the translator), and the main thread
|
| - // appends to data_buffers_ and signals it when it receives bitcode.
|
| - struct NaClCondVar buffer_cond_;
|
| - // Mutex for buffer_cond_.
|
| - struct NaClMutex cond_mu_;
|
| - // Data buffers from FileDownloader are enqueued here to pass from the
|
| - // main thread to the SRPC thread. Protected by cond_mu_
|
| - std::deque<std::vector<char> > data_buffers_;
|
| - // Whether all data has been downloaded and copied to translation thread.
|
| - // Associated with buffer_cond_
|
| - bool done_;
|
| -
|
| - int64_t compile_time_;
|
| -
|
| - // Data about the translation files, owned by the coordinator
|
| - const std::vector<TempFile*>* obj_files_;
|
| - TempFile* nexe_file_;
|
| - nacl::DescWrapper* invalid_desc_wrapper_;
|
| - ErrorInfo* coordinator_error_info_;
|
| - PnaclResources* resources_;
|
| - PP_PNaClOptions* pnacl_options_;
|
| - std::string architecture_attributes_;
|
| - PnaclCoordinator* coordinator_;
|
| - Plugin* plugin_;
|
| - private:
|
| - NACL_DISALLOW_COPY_AND_ASSIGN(PnaclTranslateThread);
|
| -};
|
| -
|
| -}
|
| -#endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_PNACL_TRANSLATE_THREAD_H_
|
|
|