Merge "Move trace.h to stdatomic."

This commit is contained in:
Yabin Cui 2015-04-16 18:35:38 +00:00 committed by Gerrit Code Review
commit 51e32b52a3
3 changed files with 11 additions and 11 deletions

View file

@ -18,6 +18,7 @@
#define _LIBS_CUTILS_TRACE_H #define _LIBS_CUTILS_TRACE_H
#include <inttypes.h> #include <inttypes.h>
#include <stdatomic.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
@ -25,7 +26,6 @@
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h> #include <unistd.h>
#include <cutils/atomic.h>
#include <cutils/compiler.h> #include <cutils/compiler.h>
__BEGIN_DECLS __BEGIN_DECLS
@ -113,7 +113,7 @@ void atrace_set_tracing_enabled(bool enabled);
* Nonzero indicates setup has completed. * Nonzero indicates setup has completed.
* Note: This does NOT indicate whether or not setup was successful. * Note: This does NOT indicate whether or not setup was successful.
*/ */
extern volatile int32_t atrace_is_ready; extern atomic_bool atrace_is_ready;
/** /**
* Set of ATRACE_TAG flags to trace for, initialized to ATRACE_TAG_NOT_READY. * Set of ATRACE_TAG flags to trace for, initialized to ATRACE_TAG_NOT_READY.
@ -136,7 +136,7 @@ extern int atrace_marker_fd;
#define ATRACE_INIT() atrace_init() #define ATRACE_INIT() atrace_init()
static inline void atrace_init() static inline void atrace_init()
{ {
if (CC_UNLIKELY(!android_atomic_acquire_load(&atrace_is_ready))) { if (CC_UNLIKELY(!atomic_load_explicit(&atrace_is_ready, memory_order_acquire))) {
atrace_setup(); atrace_setup();
} }
} }

View file

@ -18,11 +18,11 @@
#include <fcntl.h> #include <fcntl.h>
#include <limits.h> #include <limits.h>
#include <pthread.h> #include <pthread.h>
#include <stdatomic.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h>
#include <cutils/atomic.h>
#include <cutils/compiler.h> #include <cutils/compiler.h>
#include <cutils/properties.h> #include <cutils/properties.h>
#include <cutils/trace.h> #include <cutils/trace.h>
@ -37,11 +37,11 @@
*/ */
#define ATRACE_MESSAGE_LENGTH 1024 #define ATRACE_MESSAGE_LENGTH 1024
volatile int32_t atrace_is_ready = 0; atomic_bool atrace_is_ready = ATOMIC_VAR_INIT(false);
int atrace_marker_fd = -1; int atrace_marker_fd = -1;
uint64_t atrace_enabled_tags = ATRACE_TAG_NOT_READY; uint64_t atrace_enabled_tags = ATRACE_TAG_NOT_READY;
static bool atrace_is_debuggable = false; static bool atrace_is_debuggable = false;
static volatile int32_t atrace_is_enabled = 1; static atomic_bool atrace_is_enabled = ATOMIC_VAR_INIT(true);
static pthread_once_t atrace_once_control = PTHREAD_ONCE_INIT; static pthread_once_t atrace_once_control = PTHREAD_ONCE_INIT;
static pthread_mutex_t atrace_tags_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t atrace_tags_mutex = PTHREAD_MUTEX_INITIALIZER;
@ -58,7 +58,7 @@ void atrace_set_debuggable(bool debuggable)
// the Zygote process from tracing. // the Zygote process from tracing.
void atrace_set_tracing_enabled(bool enabled) void atrace_set_tracing_enabled(bool enabled)
{ {
android_atomic_release_store(enabled ? 1 : 0, &atrace_is_enabled); atomic_store_explicit(&atrace_is_enabled, enabled, memory_order_release);
atrace_update_tags(); atrace_update_tags();
} }
@ -155,8 +155,8 @@ static uint64_t atrace_get_property()
void atrace_update_tags() void atrace_update_tags()
{ {
uint64_t tags; uint64_t tags;
if (CC_UNLIKELY(android_atomic_acquire_load(&atrace_is_ready))) { if (CC_UNLIKELY(atomic_load_explicit(&atrace_is_ready, memory_order_acquire))) {
if (android_atomic_acquire_load(&atrace_is_enabled)) { if (atomic_load_explicit(&atrace_is_enabled, memory_order_acquire)) {
tags = atrace_get_property(); tags = atrace_get_property();
pthread_mutex_lock(&atrace_tags_mutex); pthread_mutex_lock(&atrace_tags_mutex);
atrace_enabled_tags = tags; atrace_enabled_tags = tags;
@ -183,7 +183,7 @@ static void atrace_init_once()
atrace_enabled_tags = atrace_get_property(); atrace_enabled_tags = atrace_get_property();
done: done:
android_atomic_release_store(1, &atrace_is_ready); atomic_store_explicit(&atrace_is_ready, true, memory_order_release);
} }
void atrace_setup() void atrace_setup()

View file

@ -20,7 +20,7 @@
#define __unused __attribute__((__unused__)) #define __unused __attribute__((__unused__))
#endif #endif
volatile int32_t atrace_is_ready = 1; atomic_bool atrace_is_ready = ATOMIC_VAR_INIT(true);
int atrace_marker_fd = -1; int atrace_marker_fd = -1;
uint64_t atrace_enabled_tags = 0; uint64_t atrace_enabled_tags = 0;