#[cfg(feature = "debug-tools")]
extern crate backtrace;
#[cfg(feature = "debug-tools")]
pub fn exec<F: FnOnce()>(f: F) {
use self::backtrace::Backtrace;
use std::env;
thread_local! {
static DEBUG_MODE_ENABLED: bool = env::var("CONC_DEBUG_MODE").is_ok();
static STACK_TRACE_ENABLED: bool = env::var("CONC_DEBUG_STACKTRACE").is_ok();
}
if DEBUG_MODE_ENABLED.with(|&x| x) {
f();
if STACK_TRACE_ENABLED.with(|&x| x) {
println!("{:?}", Backtrace::new());
}
}
}
#[inline]
#[cfg(not(feature = "debug-tools"))]
pub fn exec<F: FnOnce()>(_: F) {}