Index: src/optimizing-compiler-thread.cc |
diff --git a/src/optimizing-compiler-thread.cc b/src/optimizing-compiler-thread.cc |
index e092248b6f56613ee3b196bf08a0fd701bfade32..99f7bc6fdfac8f3560a856f40a7bcbae2c146635 100644 |
--- a/src/optimizing-compiler-thread.cc |
+++ b/src/optimizing-compiler-thread.cc |
@@ -106,12 +106,15 @@ void OptimizingCompilerThread::Stop() { |
stop_semaphore_->Wait(); |
if (FLAG_parallel_recompilation_delay != 0) { |
- InstallOptimizedFunctions(); |
// Barrier when loading queue length is not necessary since the write |
// happens in CompileNext on the same thread. |
- while (NoBarrier_Load(&queue_length_) > 0) { |
- CompileNext(); |
- InstallOptimizedFunctions(); |
+ while (NoBarrier_Load(&queue_length_) > 0) CompileNext(); |
+ InstallOptimizedFunctions(); |
+ } else { |
+ OptimizingCompiler* optimizing_compiler; |
+ while (input_queue_.Dequeue(&optimizing_compiler)) { |
+ // The optimizing compiler is allocated in the CompilationInfo's zone. |
+ delete optimizing_compiler->info(); |
} |
} |