]> git.saurik.com Git - apple/xnu.git/blob - osfmk/man/thread_create.html
xnu-792.6.70.tar.gz
[apple/xnu.git] / osfmk / man / thread_create.html
1 <h2>thread_create</h2> <hr> <p> <strong>Function</strong> - Create a thread within a task. <h3>SYNOPSIS</h3> <pre> <strong>kern_return_t thread_create</strong> <strong>(task_t</strong> <var>parent_task</var>, <strong>thread_act_t</strong> <var>child_thread</var><strong>);</strong> </pre> <h3>PARAMETERS</h3> <dl> <p> <dt> <var>parent_task</var> <dd> [in task send right] The port for the task that is to contain the new thread. <p> <dt> <var>child_thread</var> <dd> [out thread send right] The kernel-assigned name for the new thread. </dl> <h3>DESCRIPTION</h3> <p> The <strong>thread_create</strong> function creates a new thread within <var>parent_task</var>. The new thread has a suspend count of one and no processor state. <p> The new thread holds a send right for its thread kernel port. A send right for the thread's kernel port is also returned to the calling task or thread in <var>child_thread</var>. The new thread's exception ports are set to <strong>MACH_PORT_NULL</strong>. <h3>NOTES</h3> <p> To get a new thread running, first use <strong>thread_set_state</strong> to set a processor state for the thread. Then, use <strong>thread_resume</strong> to schedule the thread for execution. Alternately, use <strong>thread_create_running</strong>. <h3>RETURN VALUES</h3> <p> Only generic errors apply. <h3>RELATED INFORMATION</h3> <p> Functions: <a href="task_create.html"><strong>task_create</strong></a>, <a href="task_threads.html"><strong>task_threads</strong></a>, <a href="thread_get_special_port.html"><strong>thread_get_special_port</strong></a>, <a href="thread_get_state.html"><strong>thread_get_state</strong></a>, <a href="thread_resume.html"><strong>thread_resume</strong></a>, <a href="thread_set_special_port.html"><strong>thread_set_special_port</strong></a>, <a href="thread_set_state.html"><strong>thread_set_state</strong></a>, <a href="thread_suspend.html"><strong>thread_suspend</strong></a>, <a href="thread_terminate.html"><strong>thread_terminate</strong></a>, <a href="thread_create_running.html"><strong>thread_create_running</strong></a>.