From 1aa8b0abc65e86b4956689d0ac8eb62f92b3ff7a Mon Sep 17 00:00:00 2001 From: Ruihan Li Date: Mon, 23 Sep 2024 10:22:28 +0800 Subject: [PATCH] Correct lock usages in UNIX sockets --- kernel/src/net/socket/unix/stream/listener.rs | 4 ++-- kernel/src/net/socket/unix/stream/socket.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/src/net/socket/unix/stream/listener.rs b/kernel/src/net/socket/unix/stream/listener.rs index 9c5682e0c..895be419f 100644 --- a/kernel/src/net/socket/unix/stream/listener.rs +++ b/kernel/src/net/socket/unix/stream/listener.rs @@ -160,7 +160,7 @@ pub(super) struct Backlog { addr: UnixSocketAddrBound, pollee: Pollee, backlog: AtomicUsize, - incoming_conns: Mutex>>, + incoming_conns: SpinLock>>, wait_queue: WaitQueue, } @@ -176,7 +176,7 @@ impl Backlog { addr, pollee, backlog: AtomicUsize::new(backlog), - incoming_conns: Mutex::new(incoming_sockets), + incoming_conns: SpinLock::new(incoming_sockets), wait_queue: WaitQueue::new(), } } diff --git a/kernel/src/net/socket/unix/stream/socket.rs b/kernel/src/net/socket/unix/stream/socket.rs index 053f2f81b..a61e3dd07 100644 --- a/kernel/src/net/socket/unix/stream/socket.rs +++ b/kernel/src/net/socket/unix/stream/socket.rs @@ -24,21 +24,21 @@ use crate::{ }; pub struct UnixStreamSocket { - state: RwLock>, + state: RwMutex>, is_nonblocking: AtomicBool, } impl UnixStreamSocket { pub(super) fn new_init(init: Init, is_nonblocking: bool) -> Arc { Arc::new(Self { - state: RwLock::new(Takeable::new(State::Init(init))), + state: RwMutex::new(Takeable::new(State::Init(init))), is_nonblocking: AtomicBool::new(is_nonblocking), }) } pub(super) fn new_connected(connected: Connected, is_nonblocking: bool) -> Arc { Arc::new(Self { - state: RwLock::new(Takeable::new(State::Connected(connected))), + state: RwMutex::new(Takeable::new(State::Connected(connected))), is_nonblocking: AtomicBool::new(is_nonblocking), }) }