Currently, fastrace can hardly cut a breaking release because static states would have different fully qualified names.
Concretely, we have the following global states:
static NEXT_COLLECT_ID: AtomicUsize = AtomicUsize::new(0);
static GLOBAL_COLLECTOR: Mutex<Option<GlobalCollector>> = Mutex::new(None);
static REPORTER_READY: AtomicBool = AtomicBool::new(false);
static COMMAND_BUS: LazyLock<CommandBus<CollectCommand>> = LazyLock::new(CommandBus::new);
thread_local! {
static COMMAND_SENDER: UnsafeCell<CommandSender<CollectCommand>> = ...;
static LOCAL_ID_GENERATOR: Cell<(u32, u32)> = ...;
static LOCAL_SPAN_STACK: Rc<RefCell<LocalSpanStack>> = ...;
}
The first significant shared state is GLOBAL_COLLECTOR.
Currently,
fastracecan hardly cut a breaking release because static states would have different fully qualified names.Concretely, we have the following global states:
The first significant shared state is
GLOBAL_COLLECTOR.