pub struct ProcessControlBlockInner {
pub is_zombie: bool,
pub memory_set: MemorySet,
pub parent: Option<Weak<ProcessControlBlock>>,
pub children: Vec<Arc<ProcessControlBlock>>,
pub exit_code: i32,
pub fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>,
pub signals: SignalFlags,
pub tasks: Vec<Option<Arc<TaskControlBlock>>>,
pub task_res_allocator: RecycleAllocator,
pub mutex_list: Vec<Option<Arc<dyn Mutex>>>,
pub semaphore_list: Vec<Option<Arc<Semaphore>>>,
pub condvar_list: Vec<Option<Arc<Condvar>>>,
}
Fields
is_zombie: bool
memory_set: MemorySet
parent: Option<Weak<ProcessControlBlock>>
children: Vec<Arc<ProcessControlBlock>>
exit_code: i32
fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>
signals: SignalFlags
tasks: Vec<Option<Arc<TaskControlBlock>>>
task_res_allocator: RecycleAllocator
mutex_list: Vec<Option<Arc<dyn Mutex>>>
semaphore_list: Vec<Option<Arc<Semaphore>>>
condvar_list: Vec<Option<Arc<Condvar>>>
Implementations
sourceimpl ProcessControlBlockInner
impl ProcessControlBlockInner
pub fn get_user_token(&self) -> usize
pub fn alloc_fd(&mut self) -> usize
pub fn alloc_tid(&mut self) -> usize
pub fn dealloc_tid(&mut self, tid: usize)
pub fn thread_count(&self) -> usize
pub fn get_task(&self, tid: usize) -> Arc<TaskControlBlock>
Auto Trait Implementations
impl !RefUnwindSafe for ProcessControlBlockInner
impl Send for ProcessControlBlockInner
impl Sync for ProcessControlBlockInner
impl Unpin for ProcessControlBlockInner
impl !UnwindSafe for ProcessControlBlockInner
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more