fn new(
        id: pid_t,
        comm: CString,
        argv: Vec<CString>,
        thread_group: Arc<ThreadGroup>,
        parent: pid_t,
        thread: zx::Thread,
        files: Arc<FdTable>,
        mm: Arc<MemoryManager>,
        fs: Arc<FsContext>,
        signal_actions: Arc<SignalActions>,
        creds: Credentials,
        abstract_socket_namespace: Arc<AbstractSocketNamespace>,
        sjc: ShellJobControl,
        exit_signal: Option<Signal>,
    ) -> CurrentTask {
        CurrentTask::new(Task {
            id,
            command: RwLock::new(comm),
            argv: RwLock::new(argv),
            thread_group,
            parent,
            children: RwLock::new(HashSet::new()),
            thread,
            files,
            mm,
            fs,
            creds: RwLock::new(creds),
            abstract_socket_namespace,
            shell_job_control: sjc,
            clear_child_tid: Mutex::new(UserRef::default()),
            signal_actions,
            signals: Default::default(),
            exit_signal,
            exit_code: Mutex::new(None),
            zombie_children: Mutex::new(vec![]),
        })
    }
/// Internal function for creating a Task object. Useful when you need to specify the value of
/// every field. create_process and create_thread are more likely to be what you want.
///
/// Any fields that should be initialized fresh for every task, even if the task was created
/// with fork, are initialized to their defaults inside this function. All other fields are
/// passed as parameters.
Internal function for creating a Task object. Useful when you need to specify the value of
every field. create_process and create_thread are more likely to be what you want.

Any fields that should be initialized fresh for every task, even if the task was created
with fork, are initialized to their defaults inside this function. All other fields are
passed as parameters.
Internal function for creating a Task object . Useful when you need to specify the value of every field . create_process and create_thread are more likely to be what you want . Any fields that should be initialized fresh for every task even if the task was created with fork are initialized to their defaults inside this function . All other fields are passed as parameters .
fn new(
        id: pid_t,
        comm: CString,
        argv: Vec<CString>,
        thread_group: Arc<ThreadGroup>,
        parent: pid_t,
        thread: zx::Thread,
        files: Arc<FdTable>,
        mm: Arc<MemoryManager>,
        fs: Arc<FsContext>,
        signal_actions: Arc<SignalActions>,
        creds: Credentials,
        abstract_socket_namespace: Arc<AbstractSocketNamespace>,
        sjc: ShellJobControl,
        exit_signal: Option<Signal>,
    ) -> CurrentTask {
        CurrentTask::new(Task {
            id,
            command: RwLock::new(comm),
            argv: RwLock::new(argv),
            thread_group,
            parent,
            children: RwLock::new(HashSet::new()),
            thread,
            files,
            mm,
            fs,
            creds: RwLock::new(creds),
            abstract_socket_namespace,
            shell_job_control: sjc,
            clear_child_tid: Mutex::new(UserRef::default()),
            signal_actions,
            signals: Default::default(),
            exit_signal,
            exit_code: Mutex::new(None),
            zombie_children: Mutex::new(vec![]),
        })
    }
fn new ( id : pid_t , comm : CString , argv : Vec < CString > , thread_group : Arc < ThreadGroup > , parent : pid_t , thread : zx :: Thread , files : Arc < FdTable > , mm : Arc < MemoryManager > , fs : Arc < FsContext > , signal_actions : Arc < SignalActions > , creds : Credentials , abstract_socket_namespace : Arc < AbstractSocketNamespace > , sjc : ShellJobControl , exit_signal : Option < Signal > , ) -> CurrentTask { CurrentTask :: new ( Task { id , command : RwLock :: new ( comm ) , argv : RwLock :: new ( argv ) , thread_group , parent , children : RwLock :: new ( HashSet :: new ( ) ) , thread , files , mm , fs , creds : RwLock :: new ( creds ) , abstract_socket_namespace , shell_job_control : sjc , clear_child_tid : Mutex :: new ( UserRef :: default ( ) ) , signal_actions , signals : Default :: default ( ) , exit_signal , exit_code : Mutex :: new ( None ) , zombie_children : Mutex :: new ( vec ! [ ] ) , } ) }
Internal function for creating a Task object.
Internal function for creating a Task object .
id
pid_t
comm
CString
argv
Vec<CString>
thread_group
Arc<ThreadGroup>
parent
pid_t
thread
zx::Thread
files
Arc<FdTable>
mm
Arc<MemoryManager>
fs
Arc<FsContext>
signal_actions
Arc<SignalActions>
creds
Credentials
abstract_socket_namespace
Arc<AbstractSocketNamespace>
sjc
ShellJobControl
exit_signal
Option<Signal>
id
pid_t
comm
CString
argv
Vec<CString>
thread_group
Arc<ThreadGroup>
parent
pid_t
thread
zx::Thread
files
Arc<FdTable>
mm
Arc<MemoryManager>
fs
Arc<FsContext>
signal_actions
Arc<SignalActions>
creds
Credentials
abstract_socket_namespace
Arc<AbstractSocketNamespace>
sjc
ShellJobControl
exit_signal
Option<Signal>