diff --git a/crates/zx_document_core/src/events.rs b/crates/zx_document_core/src/events.rs index 7b9fed6..702203d 100644 --- a/crates/zx_document_core/src/events.rs +++ b/crates/zx_document_core/src/events.rs @@ -13,11 +13,14 @@ static EVENT_BUFFER: Mutex> = Mutex::new(Vec::new()); /// Push a reading event into the global buffer. /// If the buffer exceeds MAX_BUFFER_SIZE, the oldest event is dropped. pub fn push_reading_event(event: ReadingEvent) { - if let Ok(mut buf) = EVENT_BUFFER.lock() { - if buf.len() >= MAX_BUFFER_SIZE { - buf.remove(0); + match EVENT_BUFFER.lock() { + Ok(mut buf) => { + if buf.len() >= MAX_BUFFER_SIZE { + buf.remove(0); + } + buf.push(event); } - buf.push(event); + Err(_) => { /* poison: silently drop event */ } } }