diff options
Diffstat (limited to 'libcutils/trace-dev.cpp')
-rw-r--r-- | libcutils/trace-dev.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libcutils/trace-dev.cpp b/libcutils/trace-dev.cpp index 4da821555..27255c2a2 100644 --- a/libcutils/trace-dev.cpp +++ b/libcutils/trace-dev.cpp @@ -25,6 +25,7 @@ static pthread_once_t atrace_once_control = PTHREAD_ONCE_INIT; void atrace_set_tracing_enabled(bool enabled) { atomic_store_explicit(&atrace_is_enabled, enabled, memory_order_release); + atomic_store_explicit(&atrace_is_ready, false, memory_order_release); atrace_update_tags(); } @@ -34,18 +35,17 @@ static void atrace_init_once() if (atrace_marker_fd == -1) { ALOGE("Error opening trace file: %s (%d)", strerror(errno), errno); atrace_enabled_tags = 0; - goto done; + return; } - atrace_enabled_tags = atrace_get_property(); - -done: - atomic_store_explicit(&atrace_is_ready, true, memory_order_release); } void atrace_setup() { - pthread_once(&atrace_once_control, atrace_init_once); + if (atomic_load_explicit(&atrace_is_enabled, memory_order_acquire)) { + pthread_once(&atrace_once_control, atrace_init_once); + } + atomic_store_explicit(&atrace_is_ready, true, memory_order_release); } void atrace_begin_body(const char* name) |