diff options
| author | Evan Simmons <esims89@gmail.com> | 2018-07-01 14:30:16 -0700 |
|---|---|---|
| committer | Evan Simmons <esims89@gmail.com> | 2018-07-02 12:54:30 -0700 |
| commit | 9797665b286db3f34cc475560a68380012fadde7 (patch) | |
| tree | b733aaf8681cd132408392b037d604c63fd27586 /src/libstd/io | |
| parent | a2be769fd50403a07c45677f8f285491c8e90d74 (diff) | |
| download | rust-9797665b286db3f34cc475560a68380012fadde7.tar.gz rust-9797665b286db3f34cc475560a68380012fadde7.zip | |
Make Stdio handle UnwindSafe
Diffstat (limited to 'src/libstd/io')
| -rw-r--r-- | src/libstd/io/stdio.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libstd/io/stdio.rs b/src/libstd/io/stdio.rs index 2472bed5ba4..fce85a200ba 100644 --- a/src/libstd/io/stdio.rs +++ b/src/libstd/io/stdio.rs @@ -712,10 +712,32 @@ pub fn _eprint(args: fmt::Arguments) { #[cfg(test)] mod tests { + use panic::{UnwindSafe, RefUnwindSafe}; use thread; use super::*; #[test] + fn stdout_unwind_safe() { + assert_unwind_safe::<Stdout>(); + } + #[test] + fn stdoutlock_unwind_safe() { + assert_unwind_safe::<StdoutLock>(); + assert_unwind_safe::<StdoutLock<'static>>(); + } + #[test] + fn stderr_unwind_safe() { + assert_unwind_safe::<Stderr>(); + } + #[test] + fn stderrlock_unwind_safe() { + assert_unwind_safe::<StderrLock>(); + assert_unwind_safe::<StderrLock<'static>>(); + } + + fn assert_unwind_safe<T: UnwindSafe + RefUnwindSafe>() {} + + #[test] #[cfg_attr(target_os = "emscripten", ignore)] fn panic_doesnt_poison() { thread::spawn(|| { |
