/// Aborts the process when dropped, logging the message first.
///
/// Guards code that must not unwind, for example while state that the kernel
/// or other threads still use is taken out of its owner. Declare the guard
/// after such state, so it is dropped first while unwinding, and call
/// [`disarm()`](Self::disarm) once the guarded code completed.
///
/// Bind the guard to a named variable, `let _ = AbortOnUnwind(..)` drops it,
/// and aborts, immediately.
///
/// ```rust,no_run
/// use ntex_rt::AbortOnUnwind;
///
/// let guard = AbortOnUnwind("operation panicked");
/// // code that must not unwind
/// guard.disarm();
/// ```
;