summaryrefslogtreecommitdiff
path: root/src/compiler.h
diff options
context:
space:
mode:
author Brian Carlstrom <bdc@google.com> 2012-11-07 22:49:06 -0800
committer Brian Carlstrom <bdc@google.com> 2012-11-07 22:51:33 -0800
commit2f66382fdb5e98537f724eba43ef1c7162c71b0e (patch)
treeff277695e4aad975427f4441c3a45f90c448f7aa /src/compiler.h
parenta0a641c5c47ef37a5d9467582c3dbc4cd3d29529 (diff)
Restrict Compiler ThreadPool lifetime to compile-time
The Compiler object continues to exist after compilation is done so we can get the state after compilation, but we don't need to keep the threads alive. Now they have the same lifetime as the TimingLogger which seems appropriate. Change-Id: Idcf871c699563cd239f16418fb83a8d9bffe8c52
Diffstat (limited to 'src/compiler.h')
-rw-r--r--src/compiler.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/compiler.h b/src/compiler.h
index 39ee5e4ddb..bafd9d26eb 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -264,34 +264,36 @@ class Compiler {
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
void PreCompile(jobject class_loader, const std::vector<const DexFile*>& dex_files,
- TimingLogger& timings)
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_);
// Attempt to resolve all type, methods, fields, and strings
// referenced from code in the dex file following PathClassLoader
// ordering semantics.
void Resolve(jobject class_loader, const std::vector<const DexFile*>& dex_files,
- TimingLogger& timings)
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_);
- void ResolveDexFile(jobject class_loader, const DexFile& dex_file, TimingLogger& timings)
+ void ResolveDexFile(jobject class_loader, const DexFile& dex_file,
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_);
void Verify(jobject class_loader, const std::vector<const DexFile*>& dex_files,
- TimingLogger& timings);
- void VerifyDexFile(jobject class_loader, const DexFile& dex_file, TimingLogger& timings)
+ ThreadPool& thread_pool, TimingLogger& timings);
+ void VerifyDexFile(jobject class_loader, const DexFile& dex_file,
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_);
- void InitializeClasses(jobject class_loader,
- const std::vector<const DexFile*>& dex_files,
- TimingLogger& timings)
+ void InitializeClasses(jobject class_loader, const std::vector<const DexFile*>& dex_files,
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_);
void InitializeClasses(jobject class_loader, const DexFile& dex_file,
- TimingLogger& timings)
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_, compiled_classes_lock_);
void Compile(jobject class_loader, const std::vector<const DexFile*>& dex_files,
- TimingLogger& timings);
- void CompileDexFile(jobject class_loader, const DexFile& dex_file, TimingLogger& timings)
+ ThreadPool& thread_pool, TimingLogger& timings);
+ void CompileDexFile(jobject class_loader, const DexFile& dex_file,
+ ThreadPool& thread_pool, TimingLogger& timings)
LOCKS_EXCLUDED(Locks::mutator_lock_);
void CompileMethod(const DexFile::CodeItem* code_item, uint32_t access_flags,
InvokeType invoke_type, uint32_t method_idx,
@@ -367,8 +369,6 @@ class Compiler {
const char* shorty, uint32_t shorty_len);
CreateInvokeStubFn create_invoke_stub_;
- UniquePtr<ThreadPool> thread_pool_;
-
pthread_key_t tls_key_;
typedef CompiledInvokeStub* (*CreateProxyStubFn)