use core::fmt::Write;
use core::panic::PanicInfo;
use mc_sgx_io::WriteBuffer;
use mc_sgx_sync::Mutex;
static MESSAGE_BUFFER: Mutex<WriteBuffer> = Mutex::new(WriteBuffer::new());
pub(crate) fn log_panic_info(info: &PanicInfo) {
if let Ok(mut buffer) = MESSAGE_BUFFER.lock() {
buffer.clear();
let message = match write!(buffer, "{info}") {
Ok(()) => buffer.as_ref(),
_ => "Failed to format panic log info.",
};
let _ = mc_sgx_io::stderr_write_all(message.as_bytes());
} else {
let _ = mc_sgx_io::stderr_write_all(b"Mutex for panic logging has been poisoned.");
}
}