Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: base/trace_event/trace_log.cc

Issue 2159323002: Add tracing AutoOpenCloseEvent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: code review changes Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium 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 "base/trace_event/trace_log.h" 5 #include "base/trace_event/trace_log.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 825
826 if (!IsEnabled()) 826 if (!IsEnabled())
827 return; 827 return;
828 828
829 if (dispatching_to_observer_list_) { 829 if (dispatching_to_observer_list_) {
830 DLOG(ERROR) 830 DLOG(ERROR)
831 << "Cannot manipulate TraceLog::Enabled state from an observer."; 831 << "Cannot manipulate TraceLog::Enabled state from an observer.";
832 return; 832 return;
833 } 833 }
834 834
835 mode_ = DISABLED;
836
837 if (sampling_thread_) { 835 if (sampling_thread_) {
838 // Stop the sampling thread. 836 // Stop the sampling thread.
839 sampling_thread_->Stop(); 837 sampling_thread_->Stop();
840 lock_.Release(); 838 lock_.Release();
841 PlatformThread::Join(sampling_thread_handle_); 839 PlatformThread::Join(sampling_thread_handle_);
842 lock_.Acquire(); 840 lock_.Acquire();
843 sampling_thread_handle_ = PlatformThreadHandle(); 841 sampling_thread_handle_ = PlatformThreadHandle();
844 sampling_thread_.reset(); 842 sampling_thread_.reset();
845 } 843 }
846 844
(...skipping 11 matching lines...) Expand all
858 enabled_state_observer_list_; 856 enabled_state_observer_list_;
859 std::map<AsyncEnabledStateObserver*, RegisteredAsyncObserver> observer_map = 857 std::map<AsyncEnabledStateObserver*, RegisteredAsyncObserver> observer_map =
860 async_observers_; 858 async_observers_;
861 859
862 { 860 {
863 // Dispatch to observers outside the lock in case the observer triggers a 861 // Dispatch to observers outside the lock in case the observer triggers a
864 // trace event. 862 // trace event.
865 AutoUnlock unlock(lock_); 863 AutoUnlock unlock(lock_);
866 for (EnabledStateObserver* observer : observer_list) 864 for (EnabledStateObserver* observer : observer_list)
867 observer->OnTraceLogDisabled(); 865 observer->OnTraceLogDisabled();
866 mode_ = DISABLED;
868 for (const auto& it : observer_map) { 867 for (const auto& it : observer_map) {
869 it.second.task_runner->PostTask( 868 it.second.task_runner->PostTask(
870 FROM_HERE, Bind(&AsyncEnabledStateObserver::OnTraceLogDisabled, 869 FROM_HERE, Bind(&AsyncEnabledStateObserver::OnTraceLogDisabled,
871 it.second.observer)); 870 it.second.observer));
872 } 871 }
873 } 872 }
874 dispatching_to_observer_list_ = false; 873 dispatching_to_observer_list_ = false;
875 } 874 }
876 875
877 int TraceLog::GetNumTracesRecorded() { 876 int TraceLog::GetNumTracesRecorded() {
(...skipping 1043 matching lines...) Expand 10 before | Expand all | Expand 10 after
1921 } 1920 }
1922 1921
1923 ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() { 1922 ScopedTraceBinaryEfficient::~ScopedTraceBinaryEfficient() {
1924 if (*category_group_enabled_) { 1923 if (*category_group_enabled_) {
1925 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_, 1924 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled_, name_,
1926 event_handle_); 1925 event_handle_);
1927 } 1926 }
1928 } 1927 }
1929 1928
1930 } // namespace trace_event_internal 1929 } // namespace trace_event_internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698