Skip to content

Prevent your panics from unwinding across an FFI boundary with this one simple trick!

License

Notifications You must be signed in to change notification settings

agausmann/unwind_aborts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

unwind_aborts

Prevent your panics from unwinding past FFI boundaries with this one simple trick!

Intended to be used in place of #[unwind(aborts)] until it is stabilized.

Usage

Add this to your [dependencies] in Cargo.toml:

unwind_aborts = "0.1.0"

Annotate your functions with #[unwind_aborts] to catch stack unwinding and abort the process instead:

use unwind_aborts::unwind_aborts;

#[unwind_aborts]
pub extern fn foo() {
    panic!("this is safe");
}

The example above is equivalent to:

pub extern fn foo() {
    let result = std::panic::catch_unwind(|| {
        panic!("this is safe");
    });
    match result {
        Ok(x) => x,
        Err(_) => std::process::abort(),
    }
}

About

Prevent your panics from unwinding across an FFI boundary with this one simple trick!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages