From 290ecb3e46356c5045fca3258c970d11b06b42f0 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Tue, 18 Sep 2018 08:49:44 -0600 Subject: [PATCH] - fsync when tracing - clean up trace macro some --- src/macros.rs | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/macros.rs b/src/macros.rs index a161da32..e243fa31 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -41,7 +41,11 @@ macro_rules! trace { #[macro_export] #[cfg(feature = "trace")] macro_rules! trace { - ($($arg:tt)*) => (eprintln!($($arg)*)); + ($($arg:tt)*) => ({ + use $crate::{Pal, Sys}; + eprintln!($($arg)*); + Sys::fsync(2); + }); } #[macro_export] @@ -50,36 +54,27 @@ macro_rules! trace_expr { ($expr:expr, $($arg:tt)*) => ($expr); } -#[cfg(feature = "trace")] -pub fn trace_error() -> (isize, &'static str) { - use header::errno::STR_ERROR; - - let errno = unsafe { ::platform::errno } as isize; - if errno >= 0 && errno < STR_ERROR.len() as isize { - (errno, STR_ERROR[errno as usize]) - } else { - (errno, "Unknown error") - } -} - #[macro_export] #[cfg(feature = "trace")] macro_rules! trace_expr { ($expr:expr, $($arg:tt)*) => ({ + use $crate::header::errno::STR_ERROR; + use $crate::platform; + trace!("{}", format_args!($($arg)*)); - let old_errno = unsafe { ::platform::errno }; - unsafe { ::platform::errno = 0; } + let old_errno = unsafe { platform::errno }; + unsafe { platform::errno = 0; } let ret = $expr; - let errno = unsafe { ::platform::errno } as isize; + let errno = unsafe { platform::errno } as isize; if errno == 0 { - unsafe { ::platform::errno = old_errno; } + unsafe { platform::errno = old_errno; } } - let strerror = if errno >= 0 && errno < ::header::errno::STR_ERROR.len() as isize { - ::header::errno::STR_ERROR[errno as usize] + let strerror = if errno >= 0 && errno < STR_ERROR.len() as isize { + STR_ERROR[errno as usize] } else { "Unknown error" }; -- GitLab