From a8970daec2c6095b5d7ea60ac0bf4157ef8158e6 Mon Sep 17 00:00:00 2001 From: Yuke Peng Date: Fri, 30 Aug 2024 12:22:35 +0800 Subject: [PATCH] [Semaphore] Remove Box in pending_ops --- kernel/src/ipc/semaphore/system_v/sem.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/src/ipc/semaphore/system_v/sem.rs b/kernel/src/ipc/semaphore/system_v/sem.rs index 35b7a57ac..bb8321ead 100644 --- a/kernel/src/ipc/semaphore/system_v/sem.rs +++ b/kernel/src/ipc/semaphore/system_v/sem.rs @@ -91,9 +91,9 @@ pub struct Semaphore { /// - through SEM_UNDO when task exit latest_modified_pid: AtomicU32, /// Pending alter operations. For each pending operation, it has `sem_op < 0`. - pending_alters: Mutex>>, + pending_alters: Mutex>, /// Pending zeros operations. For each pending operation, it has `sem_op = 0`. - pending_const: Mutex>>, + pending_const: Mutex>, /// Last semop time. sem_otime: AtomicU64, } @@ -210,13 +210,13 @@ impl Semaphore { // Add current to pending list let (waiter, waker) = Waiter::new_pair(); let status = Arc::new(AtomicStatus::new(Status::Pending)); - let pending_op = Box::new(PendingOp { + let pending_op = PendingOp { sem_buf: *sem_buf, status: status.clone(), waker: waker.clone(), process: ctx.posix_thread.weak_process(), pid: current_pid, - }); + }; if sem_op == 0 { self.pending_const.lock().push_back(pending_op); } else {