Skip to content
Snippets Groups Projects
Commit 290ecb3e authored by Jeremy Soller's avatar Jeremy Soller
Browse files

- fsync when tracing

- clean up trace macro some
parent 60f00508
No related branches found
No related tags found
No related merge requests found
...@@ -41,7 +41,11 @@ macro_rules! trace { ...@@ -41,7 +41,11 @@ macro_rules! trace {
#[macro_export] #[macro_export]
#[cfg(feature = "trace")] #[cfg(feature = "trace")]
macro_rules! trace { macro_rules! trace {
($($arg:tt)*) => (eprintln!($($arg)*)); ($($arg:tt)*) => ({
use $crate::{Pal, Sys};
eprintln!($($arg)*);
Sys::fsync(2);
});
} }
#[macro_export] #[macro_export]
...@@ -50,36 +54,27 @@ macro_rules! trace_expr { ...@@ -50,36 +54,27 @@ macro_rules! trace_expr {
($expr:expr, $($arg:tt)*) => ($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] #[macro_export]
#[cfg(feature = "trace")] #[cfg(feature = "trace")]
macro_rules! trace_expr { macro_rules! trace_expr {
($expr:expr, $($arg:tt)*) => ({ ($expr:expr, $($arg:tt)*) => ({
use $crate::header::errno::STR_ERROR;
use $crate::platform;
trace!("{}", format_args!($($arg)*)); trace!("{}", format_args!($($arg)*));
let old_errno = unsafe { ::platform::errno }; let old_errno = unsafe { platform::errno };
unsafe { ::platform::errno = 0; } unsafe { platform::errno = 0; }
let ret = $expr; let ret = $expr;
let errno = unsafe { ::platform::errno } as isize; let errno = unsafe { platform::errno } as isize;
if errno == 0 { 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 { let strerror = if errno >= 0 && errno < STR_ERROR.len() as isize {
::header::errno::STR_ERROR[errno as usize] STR_ERROR[errno as usize]
} else { } else {
"Unknown error" "Unknown error"
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment