Rev 86 | Rev 131 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 86 | Rev 102 | ||
|---|---|---|---|
| Line 334... | Line 334... | ||
| 334 | <example> |
334 | <example> |
| 335 | <title>Use of <code>condvar_wait_timeout()</code>.</title> |
335 | <title>Use of <code>condvar_wait_timeout()</code>.</title> |
| 336 | 336 | ||
| 337 | <programlisting language="C"><function>mutex_lock</function>(<varname>mtx</varname>); |
337 | <programlisting language="C"><function>mutex_lock</function>(<varname>mtx</varname>); |
| 338 | while (!<varname>condition</varname>) |
338 | while (!<varname>condition</varname>) |
| 339 | <function>condvar_wait_timeout</function>(<varname>cv</varname>, <varname>mtx</varname>); |
339 | <function>condvar_wait_timeout</function>(<varname>cv</varname>, <varname>mtx</varname>); /* <remark>the condition is true, do something</remark> */ |
| 340 | /* <remark>the condition is true, do something</remark> */ |
- | |
| 341 | <function>mutex_unlock</function>(<varname>mtx</varname>);</programlisting> |
340 | <function>mutex_unlock</function>(<varname>mtx</varname>);</programlisting> |
| 342 | </example> |
341 | </example> |
| 343 | 342 | ||
| 344 | <para>A thread that causes the condition become true signals this event |
343 | <para>A thread that causes the condition become true signals this event |
| 345 | like this:</para> |
344 | like this:</para> |
| 346 | 345 | ||
| 347 | <example> |
346 | <example> |
| 348 | <title>Use of <code>condvar_signal</code>.</title> |
347 | <title>Use of <code>condvar_signal</code>.</title> |
| 349 | 348 | ||
| 350 | <programlisting><function>mutex_lock</function>(<varname>mtx</varname>); |
349 | <programlisting language="C"><function>mutex_lock</function>(<varname>mtx</varname>); |
| 351 | <varname>condition</varname> = <constant>true</constant>; |
350 | <varname>condition</varname> = <constant>true</constant>; |
| 352 | <function>condvar_signal</function>(<varname>cv</varname>); /* <remark>condvar_broadcast(cv);</remark> */ |
351 | <function>condvar_signal</function>(<varname>cv</varname>); /* <remark>condvar_broadcast(cv);</remark> */ |
| 353 | <function>mutex_unlock</function>(<varname>mtx</varname>);</programlisting> |
352 | <function>mutex_unlock</function>(<varname>mtx</varname>);</programlisting> |
| 354 | </example> |
353 | </example> |
| 355 | 354 | ||