summaryrefslogtreecommitdiff
path: root/libcutils/trace-dev.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcutils/trace-dev.cpp')
-rw-r--r--libcutils/trace-dev.cpp12
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)