From 7277286efd4d28c9444b03edaecf130b3fd63da8 Mon Sep 17 00:00:00 2001
From: Tom Almeida <tommoa256@gmail.com>
Date: Tue, 3 Jul 2018 10:05:12 +0800
Subject: [PATCH] Implement Drop for FILE, so we flush when the process exits

---
 src/stdio/src/lib.rs | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/stdio/src/lib.rs b/src/stdio/src/lib.rs
index cb535608..1d720ed7 100644
--- a/src/stdio/src/lib.rs
+++ b/src/stdio/src/lib.rs
@@ -203,6 +203,15 @@ impl Read for FILE {
     }
 }
 
+impl Drop for FILE {
+    fn drop(&mut self) {
+        // Flush
+        if let Some(_) = self.write {
+            self.write(&[]);
+        }
+    }
+}
+
 /// Clears EOF and ERR indicators on a stream
 #[no_mangle]
 pub extern "C" fn clearerr(stream: &mut FILE) {
-- 
GitLab