Loading libstats/include/stats_event_list.h +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ extern "C" { #endif void reset_log_context(android_log_context ctx); int write_to_logger(android_log_context context, log_id_t id); void note_log_drop(); #ifdef __cplusplus } Loading libstats/stats_event_list.c +4 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,10 @@ int write_to_logger(android_log_context ctx, log_id_t id) { return retValue; } void note_log_drop() { statsdLoggerWrite.noteDrop(); } /* log_init_lock assumed */ static int __write_to_statsd_initialize_locked() { if (!statsdLoggerWrite.open || ((*statsdLoggerWrite.open)() < 0)) { Loading libstats/statsd_writer.c +13 −9 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #define min(x, y) ((y) ^ (((x) ^ (y)) & -((x) < (y)))) static pthread_mutex_t log_init_lock = PTHREAD_MUTEX_INITIALIZER; static atomic_int dropped = 0; void statsd_writer_init_lock() { /* Loading @@ -59,6 +60,7 @@ static int statsdAvailable(); static int statsdOpen(); static void statsdClose(); static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr); static void statsdNoteDrop(); struct android_log_transport_write statsdLoggerWrite = { .name = "statsd", Loading @@ -67,6 +69,7 @@ struct android_log_transport_write statsdLoggerWrite = { .open = statsdOpen, .close = statsdClose, .write = statsdWrite, .noteDrop = statsdNoteDrop, }; /* log_init_lock assumed */ Loading Loading @@ -131,6 +134,10 @@ static int statsdAvailable() { return 1; } static void statsdNoteDrop() { atomic_fetch_add_explicit(&dropped, 1, memory_order_relaxed); } static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { ssize_t ret; int sock; Loading @@ -138,7 +145,6 @@ static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { struct iovec newVec[nr + headerLength]; android_log_header_t header; size_t i, payloadSize; static atomic_int dropped; sock = atomic_load(&statsdLoggerWrite.sock); if (sock < 0) switch (sock) { Loading Loading @@ -252,8 +258,6 @@ static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { if (ret > (ssize_t)sizeof(header)) { ret -= sizeof(header); } else if (ret == -EAGAIN) { atomic_fetch_add_explicit(&dropped, 1, memory_order_relaxed); } return ret; Loading libstats/statsd_writer.h +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ struct android_log_transport_write { void (*close)(); /* free up resources */ /* write log to transport, returns number of bytes propagated, or -errno */ int (*write)(struct timespec* ts, struct iovec* vec, size_t nr); /* note one log drop */ void (*noteDrop)(); }; #endif // ANDROID_STATS_LOG_STATS_WRITER_H Loading
libstats/include/stats_event_list.h +1 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ extern "C" { #endif void reset_log_context(android_log_context ctx); int write_to_logger(android_log_context context, log_id_t id); void note_log_drop(); #ifdef __cplusplus } Loading
libstats/stats_event_list.c +4 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,10 @@ int write_to_logger(android_log_context ctx, log_id_t id) { return retValue; } void note_log_drop() { statsdLoggerWrite.noteDrop(); } /* log_init_lock assumed */ static int __write_to_statsd_initialize_locked() { if (!statsdLoggerWrite.open || ((*statsdLoggerWrite.open)() < 0)) { Loading
libstats/statsd_writer.c +13 −9 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ #define min(x, y) ((y) ^ (((x) ^ (y)) & -((x) < (y)))) static pthread_mutex_t log_init_lock = PTHREAD_MUTEX_INITIALIZER; static atomic_int dropped = 0; void statsd_writer_init_lock() { /* Loading @@ -59,6 +60,7 @@ static int statsdAvailable(); static int statsdOpen(); static void statsdClose(); static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr); static void statsdNoteDrop(); struct android_log_transport_write statsdLoggerWrite = { .name = "statsd", Loading @@ -67,6 +69,7 @@ struct android_log_transport_write statsdLoggerWrite = { .open = statsdOpen, .close = statsdClose, .write = statsdWrite, .noteDrop = statsdNoteDrop, }; /* log_init_lock assumed */ Loading Loading @@ -131,6 +134,10 @@ static int statsdAvailable() { return 1; } static void statsdNoteDrop() { atomic_fetch_add_explicit(&dropped, 1, memory_order_relaxed); } static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { ssize_t ret; int sock; Loading @@ -138,7 +145,6 @@ static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { struct iovec newVec[nr + headerLength]; android_log_header_t header; size_t i, payloadSize; static atomic_int dropped; sock = atomic_load(&statsdLoggerWrite.sock); if (sock < 0) switch (sock) { Loading Loading @@ -252,8 +258,6 @@ static int statsdWrite(struct timespec* ts, struct iovec* vec, size_t nr) { if (ret > (ssize_t)sizeof(header)) { ret -= sizeof(header); } else if (ret == -EAGAIN) { atomic_fetch_add_explicit(&dropped, 1, memory_order_relaxed); } return ret; Loading
libstats/statsd_writer.h +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,8 @@ struct android_log_transport_write { void (*close)(); /* free up resources */ /* write log to transport, returns number of bytes propagated, or -errno */ int (*write)(struct timespec* ts, struct iovec* vec, size_t nr); /* note one log drop */ void (*noteDrop)(); }; #endif // ANDROID_STATS_LOG_STATS_WRITER_H