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