From 96efd620072a0cbdccc95b58901894111f17bb3a Mon Sep 17 00:00:00 2001 From: Ruihan Li Date: Thu, 3 Oct 2024 23:10:27 +0800 Subject: [PATCH] Use `LocalIrqDisable` in `Subject` --- kernel/src/events/subject.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/src/events/subject.rs b/kernel/src/events/subject.rs index a547ea476..8628dda69 100644 --- a/kernel/src/events/subject.rs +++ b/kernel/src/events/subject.rs @@ -3,6 +3,7 @@ use core::sync::atomic::{AtomicUsize, Ordering}; use keyable_arc::KeyableWeak; +use ostd::sync::LocalIrqDisabled; use super::{Events, EventsFilter, Observer}; use crate::prelude::*; @@ -10,7 +11,7 @@ use crate::prelude::*; /// A Subject notifies interesting events to registered observers. pub struct Subject = ()> { // A table that maintains all interesting observers. - observers: SpinLock>, F>>, + observers: SpinLock>, F>, LocalIrqDisabled>, // To reduce lock contentions, we maintain a counter for the size of the table num_observers: AtomicUsize, }