From 2f66382fdb5e98537f724eba43ef1c7162c71b0e Mon Sep 17 00:00:00 2001 From: Brian Carlstrom Date: Wed, 7 Nov 2012 22:49:06 -0800 Subject: 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 --- src/compiler.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'src/compiler.h') 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& 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& 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& 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& dex_files, - TimingLogger& timings) + void InitializeClasses(jobject class_loader, const std::vector& 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& 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 thread_pool_; - pthread_key_t tls_key_; typedef CompiledInvokeStub* (*CreateProxyStubFn) -- cgit v1.2.3-59-g8ed1b