| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1664 } | 1664 } |
| 1665 | 1665 |
| 1666 for (int i = 0; i < num_sweeper_threads_; i++) { | 1666 for (int i = 0; i < num_sweeper_threads_; i++) { |
| 1667 sweeper_thread_[i]->Stop(); | 1667 sweeper_thread_[i]->Stop(); |
| 1668 delete sweeper_thread_[i]; | 1668 delete sweeper_thread_[i]; |
| 1669 sweeper_thread_[i] = NULL; | 1669 sweeper_thread_[i] = NULL; |
| 1670 } | 1670 } |
| 1671 delete[] sweeper_thread_; | 1671 delete[] sweeper_thread_; |
| 1672 sweeper_thread_ = NULL; | 1672 sweeper_thread_ = NULL; |
| 1673 | 1673 |
| 1674 if (FLAG_job_based_sweeping && |
| 1675 heap_.mark_compact_collector()->IsConcurrentSweepingInProgress()) { |
| 1676 heap_.mark_compact_collector()->WaitUntilSweepingCompleted(); |
| 1677 } |
| 1674 | 1678 |
| 1675 if (FLAG_hydrogen_stats) GetHStatistics()->Print(); | 1679 if (FLAG_hydrogen_stats) GetHStatistics()->Print(); |
| 1676 | 1680 |
| 1677 if (FLAG_print_deopt_stress) { | 1681 if (FLAG_print_deopt_stress) { |
| 1678 PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_); | 1682 PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_); |
| 1679 } | 1683 } |
| 1680 | 1684 |
| 1681 // We must stop the logger before we tear down other components. | 1685 // We must stop the logger before we tear down other components. |
| 1682 Sampler* sampler = logger_->sampler(); | 1686 Sampler* sampler = logger_->sampler(); |
| 1683 if (sampler && sampler->IsActive()) sampler->Stop(); | 1687 if (sampler && sampler->IsActive()) sampler->Stop(); |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2003 if (create_heap_objects) heap_.CreateStubsRequiringBuiltins(); | 2007 if (create_heap_objects) heap_.CreateStubsRequiringBuiltins(); |
| 2004 | 2008 |
| 2005 // Set default value if not yet set. | 2009 // Set default value if not yet set. |
| 2006 // TODO(yangguo): move this to ResourceConstraints::ConfigureDefaults | 2010 // TODO(yangguo): move this to ResourceConstraints::ConfigureDefaults |
| 2007 // once ResourceConstraints becomes an argument to the Isolate constructor. | 2011 // once ResourceConstraints becomes an argument to the Isolate constructor. |
| 2008 if (max_available_threads_ < 1) { | 2012 if (max_available_threads_ < 1) { |
| 2009 // Choose the default between 1 and 4. | 2013 // Choose the default between 1 and 4. |
| 2010 max_available_threads_ = Max(Min(CPU::NumberOfProcessorsOnline(), 4), 1); | 2014 max_available_threads_ = Max(Min(CPU::NumberOfProcessorsOnline(), 4), 1); |
| 2011 } | 2015 } |
| 2012 | 2016 |
| 2013 num_sweeper_threads_ = SweeperThread::NumberOfThreads(max_available_threads_); | 2017 if (!FLAG_job_based_sweeping) { |
| 2018 num_sweeper_threads_ = |
| 2019 SweeperThread::NumberOfThreads(max_available_threads_); |
| 2020 } |
| 2014 | 2021 |
| 2015 if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) { | 2022 if (FLAG_trace_hydrogen || FLAG_trace_hydrogen_stubs) { |
| 2016 PrintF("Concurrent recompilation has been disabled for tracing.\n"); | 2023 PrintF("Concurrent recompilation has been disabled for tracing.\n"); |
| 2017 } else if (OptimizingCompilerThread::Enabled(max_available_threads_)) { | 2024 } else if (OptimizingCompilerThread::Enabled(max_available_threads_)) { |
| 2018 optimizing_compiler_thread_ = new OptimizingCompilerThread(this); | 2025 optimizing_compiler_thread_ = new OptimizingCompilerThread(this); |
| 2019 optimizing_compiler_thread_->Start(); | 2026 optimizing_compiler_thread_->Start(); |
| 2020 } | 2027 } |
| 2021 | 2028 |
| 2022 if (num_sweeper_threads_ > 0) { | 2029 if (num_sweeper_threads_ > 0) { |
| 2023 sweeper_thread_ = new SweeperThread*[num_sweeper_threads_]; | 2030 sweeper_thread_ = new SweeperThread*[num_sweeper_threads_]; |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2308 | 2315 |
| 2309 #ifdef DEBUG | 2316 #ifdef DEBUG |
| 2310 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ | 2317 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ |
| 2311 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); | 2318 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); |
| 2312 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) | 2319 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) |
| 2313 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) | 2320 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
| 2314 #undef ISOLATE_FIELD_OFFSET | 2321 #undef ISOLATE_FIELD_OFFSET |
| 2315 #endif | 2322 #endif |
| 2316 | 2323 |
| 2317 } } // namespace v8::internal | 2324 } } // namespace v8::internal |
| OLD | NEW |