2109f12c3b
strerrordesc_np() isn't very useful (being just another name for strerror()), but strerrorname_np() lets you get "ENOSYS" for ENOSYS, which will make some of our test assertion messages clearer when we switch over from strerror(). This also adds `%#m` formatting to all the relevant functions. Test: treehugger Change-Id: Icfe07a39a307d591c3f4f2a09d008dc021643062 |
||
---|---|---|
.. | ||
include/async_safe | ||
Android.bp | ||
async_safe_log.cpp | ||
README.md |
async_safe logging
This library provides an async_safe implementation for formatting and writing log messages to logd.
Note that the liblog implementation connects a single socket to logd and uses a RWLock to manage it among threads, whereas these functions connect to liblog for each log message. While it's beneficial to have this lock-free and therefore async_safe mechanism to write to logd, connecting a socket for each message does not scale well under load. It was also determined to be too costly to connect a socket for each thread as some processes, such as system_server, have over 100 threads. Therefore, we maintain these two separate mechanisms.