File tree Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Expand file tree Collapse file tree 2 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -92,6 +92,7 @@ use crate::backtrace_rs::{self, BytesOrWideString};
9292use crate :: env;
9393use crate :: ffi:: c_void;
9494use crate :: fmt;
95+ use crate :: panic:: UnwindSafe ;
9596use crate :: sync:: atomic:: { AtomicUsize , Ordering :: Relaxed } ;
9697use crate :: sync:: LazyLock ;
9798use crate :: sys_common:: backtrace:: { lock, output_filename} ;
@@ -427,7 +428,7 @@ impl fmt::Display for Backtrace {
427428 }
428429}
429430
430- type LazyResolve = impl ( FnOnce ( ) -> Capture ) + Send + Sync ;
431+ type LazyResolve = impl ( FnOnce ( ) -> Capture ) + Send + Sync + UnwindSafe ;
431432
432433fn lazy_resolve ( mut capture : Capture ) -> LazyResolve {
433434 move || {
Original file line number Diff line number Diff line change 11use super :: * ;
2+ use crate :: panic:: { RefUnwindSafe , UnwindSafe } ;
23
34fn generate_fake_frames ( ) -> Vec < BacktraceFrame > {
45 vec ! [
@@ -91,3 +92,9 @@ fn test_frames() {
9192
9293 assert ! ( iter. all( |( f, e) | format!( "{f:#?}" ) == * e) ) ;
9394}
95+
96+ #[ test]
97+ fn backtrace_unwind_safe ( ) {
98+ fn assert_unwind_safe < T : UnwindSafe + RefUnwindSafe > ( ) { }
99+ assert_unwind_safe :: < Backtrace > ( ) ;
100+ }
You can’t perform that action at this time.
0 commit comments