diff --git a/kernel/src/process/posix_thread/builder.rs b/kernel/src/process/posix_thread/builder.rs index 486149bf8..0b73fe616 100644 --- a/kernel/src/process/posix_thread/builder.rs +++ b/kernel/src/process/posix_thread/builder.rs @@ -163,6 +163,7 @@ impl PosixThreadBuilder { PosixThread { process, + task: weak_task.clone(), tid: AtomicU32::new(tid), name: Mutex::new(thread_name), credentials, diff --git a/kernel/src/process/posix_thread/mod.rs b/kernel/src/process/posix_thread/mod.rs index 6d1edfd9c..be56e96e1 100644 --- a/kernel/src/process/posix_thread/mod.rs +++ b/kernel/src/process/posix_thread/mod.rs @@ -3,7 +3,10 @@ use core::sync::atomic::{AtomicU32, Ordering}; use aster_rights::{ReadDupOp, ReadOp, WriteOp}; -use ostd::sync::{RoArc, RwMutexReadGuard, Waker}; +use ostd::{ + sync::{RoArc, RwMutexReadGuard, Waker}, + task::Task, +}; use super::{ signal::{sig_mask::AtomicSigMask, sig_num::SigNum, sig_queues::SigQueues, signals::Signal}, @@ -38,6 +41,7 @@ pub use thread_local::{AsThreadLocal, FileTableRefMut, ThreadLocal}; pub struct PosixThread { // Immutable part process: Weak, + task: Weak, // Mutable part tid: AtomicU32,