use ;
/// Wrapper around a raw pointer that opts into `Send + Sync`.
///
/// Safety: the pointee (`clingo_control_t`) supports `clingo_control_interrupt`
/// from any thread, and we guard access with an `RwLock` to prevent use-after-free.
pub *mut clingo_control_t);
unsafe
unsafe
/// A thread-safe handle that can interrupt a running solve.
///
/// Obtained via [`Control::interrupt_handle`](super::Control::interrupt_handle).
/// The handle is `Send + Sync` and can be cloned, so it can be shared across threads.
///
/// If the `Control` has been dropped, `interrupt()` is a safe no-op.