extern crate alloc;
use crate::records::thread_context::ThreadContext;
use crate::records::token::Token;
use alloc::vec::Vec;
use std::sync::Mutex;
#[derive(Debug, Default)]
pub(crate) struct ThreadPtr(pub(crate) *mut ThreadContext);
unsafe impl Send for ThreadPtr {}
#[derive(Debug, Default)]
pub(crate) struct GlobalContextState {
pub(crate) threads: Vec<ThreadPtr>,
pub(crate) next_thread_id: u32,
pub(crate) tokens: Vec<Token>,
pub(crate) trace_file: Option<std::fs::File>,
}
#[derive(Debug)]
pub struct GlobalContext {
pub(crate) state: Mutex<GlobalContextState>,
}