use crate::util::log::write_error_log;
use std::sync::{Mutex, MutexGuard};
pub fn safe_lock<'a, T>(mutex: &'a Mutex<T>, context: &str) -> MutexGuard<'a, T> {
mutex.lock().unwrap_or_else(|poisoned| {
write_error_log(
"safe_lock",
&format!("Mutex poisoned at [{}], recovering", context),
);
poisoned.into_inner()
})
}