Reduce cpp logging overhead

This commit is contained in:
topjohnwu 2023-05-09 19:14:08 -07:00
parent 7518092ad2
commit 583ffc8177
4 changed files with 5 additions and 5 deletions

View File

@ -25,7 +25,7 @@ pub mod ffi {
}
extern "Rust" {
fn log_with_rs(level: LogLevel, msg: &str);
fn log_with_rs(level: LogLevel, msg: &[u8]);
fn exit_on_error(b: bool);
fn set_log_level_state(level: LogLevel, enabled: bool);
fn cmdline_logging();

View File

@ -14,7 +14,7 @@ using namespace std;
static int fmt_and_log_with_rs(LogLevel level, const char *fmt, va_list ap) {
char buf[4096];
int ret = vssprintf(buf, sizeof(buf), fmt, ap);
log_with_rs(level, rust::Str(buf, ret));
log_with_rs(level, rust::Slice(reinterpret_cast<const uint8_t *>(buf), ret));
return ret;
}

View File

@ -62,12 +62,12 @@ pub fn set_log_level_state(level: LogLevel, enabled: bool) {
}
}
pub fn log_with_rs(level: LogLevel, msg: &str) {
pub fn log_with_rs(level: LogLevel, msg: &[u8]) {
let logger = unsafe { LOGGER };
if (logger.flags & level.to_disable_flag()) != 0 {
return;
}
(logger.write)(level, msg.as_bytes());
(logger.write)(level, msg);
if level == LogLevel::Error && (logger.flags & LogFlag::ExitOnError) != 0 {
exit(1);
}

View File

@ -219,7 +219,7 @@ fn zygisk_log_write(prio: i32, msg: &[u8]) {
// Consume SIGPIPE if exists, then restore mask
unsafe {
let mut ts: timespec = std::mem::zeroed();
let ts: timespec = std::mem::zeroed();
sigtimedwait(&mask, null_mut(), &ts);
pthread_sigmask(SIG_SETMASK, &orig_mask, null_mut());
}