# Struct os::task::process::ProcessControlBlockInner

source · [−]

    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

source

### impl ProcessControlBlockInner

source

#### pub fn get_user_token(&self) -> usize

source

#### pub fn alloc_fd(&mut self) -> usize

source

#### pub fn alloc_tid(&mut self) -> usize

source

#### pub fn dealloc_tid(&mut self, tid: usize)

source

#### pub fn thread_count(&self) -> usize

source

#### 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

source

### impl<T> Any for T where
T: 'static + ?Sized,

source

#### pub fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more

source

### impl<T> Borrow<T> for T where
T: ?Sized,

source

#### pub fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

### impl<T> BorrowMut<T> for T where
T: ?Sized,

source

#### pub fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more

source

### impl<T> From<T> for T

source

#### pub fn from(t: T) -> T

Performs the conversion.

source

### impl<T, U> Into<U> for T where
U: From<T>,

source

#### pub fn into(self) -> U

Performs the conversion.

source

### impl<T, U> TryFrom<U> for T where
U: Into<T>,

#### type Error = Infallible

The type returned in the event of a conversion error.

source

#### pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.

source

### impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

source

#### pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.