| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/isolate.h" | 5 #include "src/isolate.h" |
| 6 | 6 |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 | 8 |
| 9 #include <fstream> // NOLINT(readability/streams) | 9 #include <fstream> // NOLINT(readability/streams) |
| 10 #include <sstream> | 10 #include <sstream> |
| (...skipping 2619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2630 handler->has_terminated_ = false; | 2630 handler->has_terminated_ = false; |
| 2631 handler->exception_ = pending_exception(); | 2631 handler->exception_ = pending_exception(); |
| 2632 // Propagate to the external try-catch only if we got an actual message. | 2632 // Propagate to the external try-catch only if we got an actual message. |
| 2633 if (thread_local_top_.pending_message_obj_->IsTheHole(this)) return true; | 2633 if (thread_local_top_.pending_message_obj_->IsTheHole(this)) return true; |
| 2634 | 2634 |
| 2635 handler->message_obj_ = thread_local_top_.pending_message_obj_; | 2635 handler->message_obj_ = thread_local_top_.pending_message_obj_; |
| 2636 } | 2636 } |
| 2637 return true; | 2637 return true; |
| 2638 } | 2638 } |
| 2639 | 2639 |
| 2640 static base::LazyMutex initialize_counters_mutex = LAZY_MUTEX_INITIALIZER; | |
| 2641 | |
| 2642 bool Isolate::InitializeCounters() { | 2640 bool Isolate::InitializeCounters() { |
| 2643 if (counters_ != nullptr) return false; | 2641 if (counters_ != nullptr) return false; |
| 2644 base::LockGuard<base::Mutex> guard(initialize_counters_mutex.Pointer()); | |
| 2645 if (counters_ != nullptr) return false; | |
| 2646 counters_shared_ = std::make_shared<Counters>(this); | 2642 counters_shared_ = std::make_shared<Counters>(this); |
| 2647 counters_ = counters_shared_.get(); | 2643 counters_ = counters_shared_.get(); |
| 2648 return true; | 2644 return true; |
| 2649 } | 2645 } |
| 2650 | 2646 |
| 2651 void Isolate::InitializeLoggingAndCounters() { | 2647 void Isolate::InitializeLoggingAndCounters() { |
| 2652 if (logger_ == NULL) { | 2648 if (logger_ == NULL) { |
| 2653 logger_ = new Logger(this); | 2649 logger_ = new Logger(this); |
| 2654 } | 2650 } |
| 2655 InitializeCounters(); | 2651 InitializeCounters(); |
| (...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3787 // Then check whether this scope intercepts. | 3783 // Then check whether this scope intercepts. |
| 3788 if ((flag & intercept_mask_)) { | 3784 if ((flag & intercept_mask_)) { |
| 3789 intercepted_flags_ |= flag; | 3785 intercepted_flags_ |= flag; |
| 3790 return true; | 3786 return true; |
| 3791 } | 3787 } |
| 3792 return false; | 3788 return false; |
| 3793 } | 3789 } |
| 3794 | 3790 |
| 3795 } // namespace internal | 3791 } // namespace internal |
| 3796 } // namespace v8 | 3792 } // namespace v8 |
| OLD | NEW |