pub struct TaskRunningState {
pub thread: OnceLock<ZirconThread>,
pub files: LockDepMutex<Option<SharedFdTable>, TaskFilesLock>,
pub mm: RcuOptionArc<MemoryManager>,
pub fs: RcuArc<FsContext>,
pub abstract_socket_namespace: Arc<AbstractUnixSocketNamespace>,
pub abstract_vsock_namespace: Arc<AbstractVsockSocketNamespace>,
pub proc_pid_directory_cache: RcuOptionBox<FsNodeHandle>,
}Expand description
The running state of a task.
This structure contains the state of a task that is only relevant while the task is running. It is dropped when the task enters an exited state.
Fields§
§thread: OnceLock<ZirconThread>A handle to the underlying Zircon thread object.
Some tasks lack an underlying Zircon thread. These tasks are used internally by the
Starnix kernel to track background work, typically on a kthread.
files: LockDepMutex<Option<SharedFdTable>, TaskFilesLock>The file descriptor table for this task.
This table can be shared by many tasks.
This is always Some while the task is running. It becomes None upon exit.
mm: RcuOptionArc<MemoryManager>The memory manager for this task. This is None only for system tasks.
fs: RcuArc<FsContext>The file system for this task.
abstract_socket_namespace: Arc<AbstractUnixSocketNamespace>The namespace for abstract AF_UNIX sockets for this task.
abstract_vsock_namespace: Arc<AbstractVsockSocketNamespace>The namespace for AF_VSOCK for this task.
proc_pid_directory_cache: RcuOptionBox<FsNodeHandle>The pid directory, so it doesn’t have to be generated and thrown away on every access. See https://fxbug.dev/291962828 for details.
Implementations§
Source§impl TaskRunningState
impl TaskRunningState
pub fn files(&self) -> Result<Arc<FdTable>, Errno>
pub fn fork_files(&self) -> Option<SharedFdTable>
Unshares the file descriptor table for this task, if shared.
Updates the Arc<FdTable> reference in both SharedFdTable and CurrentTask.
pub fn mm(&self) -> Result<Arc<MemoryManager>, Errno>
pub fn fs(&self) -> Arc<FsContext> ⓘ
Auto Trait Implementations§
impl !Freeze for TaskRunningState
impl !RefUnwindSafe for TaskRunningState
impl !UnwindSafe for TaskRunningState
impl Send for TaskRunningState
impl Sync for TaskRunningState
impl Unpin for TaskRunningState
impl UnsafeUnpin for TaskRunningState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
Source§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to [Self]Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more