diff options
Diffstat (limited to 'deps/v8/src/optimizing-compiler-thread.h')
-rw-r--r-- | deps/v8/src/optimizing-compiler-thread.h | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/deps/v8/src/optimizing-compiler-thread.h b/deps/v8/src/optimizing-compiler-thread.h index 3088843309..7d60d9bf74 100644 --- a/deps/v8/src/optimizing-compiler-thread.h +++ b/deps/v8/src/optimizing-compiler-thread.h @@ -6,6 +6,7 @@ #define V8_OPTIMIZING_COMPILER_THREAD_H_ #include "src/base/atomicops.h" +#include "src/base/platform/condition-variable.h" #include "src/base/platform/mutex.h" #include "src/base/platform/platform.h" #include "src/base/platform/time.h" @@ -35,10 +36,10 @@ class OptimizingCompilerThread : public base::Thread { input_queue_shift_(0), osr_buffer_capacity_(FLAG_concurrent_recompilation_queue_length + 4), osr_buffer_cursor_(0), - task_count_(0), osr_hits_(0), osr_attempts_(0), blocked_jobs_(0), + ref_count_(0), tracing_enabled_(FLAG_trace_concurrent_recompilation), job_based_recompilation_(FLAG_job_based_recompilation), recompilation_delay_(FLAG_concurrent_recompilation_delay) { @@ -96,7 +97,7 @@ class OptimizingCompilerThread : public base::Thread { void FlushOutputQueue(bool restore_function_code); void FlushOsrBuffer(bool restore_function_code); void CompileNext(OptimizedCompileJob* job); - OptimizedCompileJob* NextInput(StopFlag* flag = NULL); + OptimizedCompileJob* NextInput(bool check_if_flushing = false); // Add a recompilation task for OSR to the cyclic buffer, awaiting OSR entry. // Tasks evicted from the cyclic buffer are discarded. @@ -140,18 +141,15 @@ class OptimizingCompilerThread : public base::Thread { base::TimeDelta time_spent_compiling_; base::TimeDelta time_spent_total_; - int task_count_; - // TODO(jochen): This is currently a RecursiveMutex since both Flush/Stop and - // Unblock try to get it, but the former methods both can call Unblock. Once - // job based recompilation is on by default, and the dedicated thread can be - // removed, this should be refactored to not use a RecursiveMutex. - base::RecursiveMutex task_count_mutex_; - int osr_hits_; int osr_attempts_; int blocked_jobs_; + int ref_count_; + base::Mutex ref_count_mutex_; + base::ConditionVariable ref_count_zero_; + // Copies of FLAG_trace_concurrent_recompilation, // FLAG_concurrent_recompilation_delay and // FLAG_job_based_recompilation that will be used from the background thread. |