use once_cell::sync::Lazy; use std::sync::Arc; use tokio::sync::broadcast; use super::event_bus::EventBus; use crate::executor::ExecutorCommand; static EXECUTOR_EVENT_BUS: Lazy>> = Lazy::new(|| Arc::new(EventBus::new())); pub fn publish_executor_event(event: ExecutorCommand) { EXECUTOR_EVENT_BUS.publish(event); } pub fn subscribe_executor_event() -> broadcast::Receiver { EXECUTOR_EVENT_BUS.subscribe() }