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

Unified Diff: base/trace_event/trace_event.h

Issue 1923533004: Tracing pre-filtering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review fixes Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « base/trace_event/trace_config_unittest.cc ('k') | base/trace_event/trace_event_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/trace_event/trace_event.h
diff --git a/base/trace_event/trace_event.h b/base/trace_event/trace_event.h
index 250c161d46ce018ff316a0ee8ac8c44f0ba79e92..53395dc670c76adf51108c5ea9c6f44abc2443fe 100644
--- a/base/trace_event/trace_event.h
+++ b/base/trace_event/trace_event.h
@@ -78,6 +78,11 @@
base::trace_event::TraceLog::ENABLED_FOR_EVENT_CALLBACK | \
base::trace_event::TraceLog::ENABLED_FOR_ETW_EXPORT))
+#define INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE( \
+ category_group_enabled) \
+ UNLIKELY(category_group_enabled& \
+ base::trace_event::TraceLog::ENABLED_FOR_FILTERING)
+
////////////////////////////////////////////////////////////////////////////////
// Implementation specific tracing API definitions.
@@ -185,6 +190,14 @@
#define TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION \
base::trace_event::TraceLog::GetInstance()->UpdateTraceEventDuration
+// Call EndEvent on the filter for a filtered event.
+// void TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(
+// const unsigned char* category_group_enabled,
+// const char* name,
+// base::trace_event::TraceEventHandle id)
+#define TRACE_EVENT_API_END_FILTERED_EVENT \
+ base::trace_event::TraceLog::GetInstance()->EndFilteredEvent
+
// Adds a metadata event to the trace log. The |AppendValueAsTraceFormat| method
// on the convertable value will be called at flush time.
// TRACE_EVENT_API_ADD_METADATA_EVENT(
@@ -999,9 +1012,15 @@ class TRACE_EVENT_API_CLASS_EXPORT ScopedTracer {
ScopedTracer() : p_data_(NULL) {}
~ScopedTracer() {
- if (p_data_ && *data_.category_group_enabled)
+ if (p_data_ && *data_.category_group_enabled) {
TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(
data_.category_group_enabled, data_.name, data_.event_handle);
+ if (INTERNAL_TRACE_EVENT_CATEGORY_GROUP_ENABLED_FOR_FILTERING_MODE(
+ *data_.category_group_enabled)) {
+ TRACE_EVENT_API_END_FILTERED_EVENT(data_.category_group_enabled,
+ data_.name, data_.event_handle);
+ }
+ }
}
void Initialize(const unsigned char* category_group_enabled,
« no previous file with comments | « base/trace_event/trace_config_unittest.cc ('k') | base/trace_event/trace_event_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698