]> git.saurik.com Git - apple/xnu.git/blame - osfmk/man/thread_suspend.html
xnu-4903.221.2.tar.gz
[apple/xnu.git] / osfmk / man / thread_suspend.html
CommitLineData
13fec989
A
1<h2>thread_suspend</h2>
2<hr>
3<p>
4<strong>Function</strong> - Suspend a thread.
5<h3>SYNOPSIS</h3>
6<pre>
7<strong>kern_return_t thread_suspend</strong>
8 <strong>(thread_act_t</strong> <var>target_thread</var><strong>);</strong>
9</pre>
10<h3>PARAMETERS</h3>
11<dl>
12<p>
13<dt> <var>target_thread</var>
14<dd>
15[in thread send right]
16The thread to be suspended.
17</dl>
18<h3>DESCRIPTION</h3>
19<p>
20The <strong>thread_suspend</strong> function increments the suspend
21count for <var>target_thread</var>
22and prevents the thread from executing any more user-level instructions.
23<p>
24In this context, a user-level instruction can be either a machine instruction
25executed in user mode or a system trap instruction, including
26a page fault. If a
27thread is currently executing within a system trap, the kernel
28code may continue
29to execute until it reaches the system return code or it may
30suspend within the
31kernel code. In either case, the system trap returns when the thread resumes.
32<p>
33To resume a suspended thread, use <strong>thread_resume</strong>. If
34the suspend count is
35greater than one, <strong>thread_resume</strong> must be repeated that
36number of times.
37<h3>CAUTIONS</h3>
38<p>
39Unpredictable results may occur if a program suspends a thread and alters its
40user state so that its direction is changed upon resuming. Note that the
41<strong>thread_abort</strong> function allows a system call to be aborted
42only if it is progressing in a
43predictable way.
44<h3>RETURN VALUES</h3>
45<p>
46Only generic errors apply.
47<h3>RELATED INFORMATION</h3>
48<p>
49Functions:
50<a href="task_resume.html"><strong>task_resume</strong></a>,
51<a href="task_suspend.html"><strong>task_suspend</strong></a>,
52<a href="thread_abort.html"><strong>thread_abort</strong></a>,
53<a href="thread_get_state.html"><strong>thread_get_state</strong></a>,
54<a href="thread_info.html"><strong>thread_info</strong></a>,
55<a href="thread_resume.html"><strong>thread_resume</strong></a>,
56<a href="thread_set_state.html"><strong>thread_set_state</strong></a>,
57<a href="thread_terminate.html"><strong>thread_terminate</strong></a>.