summaryrefslogtreecommitdiff
path: root/deps/v8/src/tracing/tracing-category-observer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/tracing/tracing-category-observer.cc')
-rw-r--r--deps/v8/src/tracing/tracing-category-observer.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/deps/v8/src/tracing/tracing-category-observer.cc b/deps/v8/src/tracing/tracing-category-observer.cc
index 3e286620dc..28c107d88f 100644
--- a/deps/v8/src/tracing/tracing-category-observer.cc
+++ b/deps/v8/src/tracing/tracing-category-observer.cc
@@ -4,6 +4,7 @@
#include "src/tracing/tracing-category-observer.h"
+#include "src/base/atomic-utils.h"
#include "src/flags.h"
#include "src/tracing/trace-event.h"
#include "src/v8.h"
@@ -37,12 +38,16 @@ void TracingCategoryObserver::OnTraceEnabled() {
TRACE_EVENT_CATEGORY_GROUP_ENABLED(
TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats"), &enabled);
if (enabled) {
- v8::internal::FLAG_runtime_stats |= ENABLED_BY_TRACING;
+ base::AsAtomic32::Relaxed_Store(
+ &v8::internal::FLAG_runtime_stats,
+ (v8::internal::FLAG_runtime_stats | ENABLED_BY_TRACING));
}
TRACE_EVENT_CATEGORY_GROUP_ENABLED(
TRACE_DISABLED_BY_DEFAULT("v8.runtime_stats_sampling"), &enabled);
if (enabled) {
- v8::internal::FLAG_runtime_stats |= ENABLED_BY_SAMPLING;
+ base::AsAtomic32::Relaxed_Store(
+ &v8::internal::FLAG_runtime_stats,
+ v8::internal::FLAG_runtime_stats | ENABLED_BY_SAMPLING);
}
TRACE_EVENT_CATEGORY_GROUP_ENABLED(TRACE_DISABLED_BY_DEFAULT("v8.gc_stats"),
&enabled);
@@ -57,8 +62,10 @@ void TracingCategoryObserver::OnTraceEnabled() {
}
void TracingCategoryObserver::OnTraceDisabled() {
- v8::internal::FLAG_runtime_stats &=
- ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING);
+ base::AsAtomic32::Relaxed_Store(
+ &v8::internal::FLAG_runtime_stats,
+ v8::internal::FLAG_runtime_stats &
+ ~(ENABLED_BY_TRACING | ENABLED_BY_SAMPLING));
v8::internal::FLAG_gc_stats &= ~ENABLED_BY_TRACING;
v8::internal::FLAG_ic_stats &= ~ENABLED_BY_TRACING;
}