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