/interrupts

Cross-architecture utilities for temporarily disabling interrupts and signals.

Primary LanguageRustApache License 2.0Apache-2.0

interrupts

Crates.io docs.rs CI

Cross-architecture utilities for temporarily disabling interrupts and signals.

Use disable to disable interrupts with a guard:

// interrupts may or may not be enabled
let guard = interrupts::disable();
// interrupts are disabled
drop(guard);
// interrupts are restored to the previous state

Use without to run a closure with disabled interrupts:

// interrupts may or may not be enabled
interrupts::without(|| {
    // interrupts are disabled
});
// interrupts are restored to the previous state

For API documentation, see the docs.

Related Crates

  • interrupt-ref-cell (A RefCell for sharing data with interrupt handlers or signal handlers on the same thread.)
  • interrupt-mutex (A mutex for sharing data with interrupt handlers or signal handlers.)

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.