<p>This module implements the Condition Variables mechanism. Condition variables are an extensions to the <aclass="el"href="struct_mutex.html"title="Mutex structure.">Mutex</a> subsystem and cannot work alone. </p>
<h2>Operation mode</h2>
<p>The condition variable is a synchronization object meant to be used inside a zone protected by a <code><aclass="el"href="struct_mutex.html"title="Mutex structure.">Mutex</a></code>. Mutexes and CondVars together can implement a Monitor construct.<br/>
In order to use the Condition Variables APIs the <code>CH_USE_CONDVARS</code> option must be enabled in <code><aclass="el"href="chconf_8h.html"title="Configuration file template.">chconf.h</a></code>. </p>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Data part of a static condition variable initializer. <ahref="#ga5d435ff663d0d9f3d54427cba4faf00f"></a><br/></td></tr>
<tr><tdclass="memItemLeft"align="right"valign="top">#define </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group__condvars.html#ga3ea56c50eb9ddff1cf665e8fb60ba6ac">CONDVAR_DECL</a>(name) <aclass="el"href="struct_cond_var.html">CondVar</a> name = _CONDVAR_DATA(name)</td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Signals one thread that is waiting on the condition variable. <ahref="#gadddadb68e2a2ce061c7df0d647da9996"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Signals one thread that is waiting on the condition variable. <ahref="#ga7b9d882c348124fed46a1afc3db6c02c"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Signals all threads that are waiting on the condition variable. <ahref="#ga60c24a8060a884313efe82b8404e77f6"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Signals all threads that are waiting on the condition variable. <ahref="#ga5cf1f4697985d81ee089b042391df6fc"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Waits on the condition variable releasing the mutex lock. <ahref="#ga466f912bc9b09b133fae862993004ffe"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Waits on the condition variable releasing the mutex lock. <ahref="#gab6357d80b01ed8d225ef1e30a66248f9"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Waits on the condition variable releasing the mutex lock. <ahref="#ga07a0c55ac1002a64e8c7f9b7e3ca1caf"></a><br/></td></tr>
<tr><tdclass="mdescLeft"> </td><tdclass="mdescRight">Waits on the condition variable releasing the mutex lock. <ahref="#ga9cf6ebe4c9f28cb206fab14984a18d29"></a><br/></td></tr>
<td> <aclass="el"href="struct_cond_var.html">CondVar</a> name = _CONDVAR_DATA(name)</td>
</tr>
</table>
</div>
<divclass="memdoc">
<p>Static condition variable initializer. </p>
<p>Statically initialized condition variables require no explicit initialization using <code><aclass="el"href="group__condvars.html#ga4c698ba6ce06089c08f989e126af9873"title="Initializes s CondVar structure.">chCondInit()</a></code>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>name</em> </td><td>the name of the condition variable </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8h_source.html#l00092">92</a> of file <aclass="el"href="chcond_8h_source.html">chcond.h</a>.</p>
<p>Initializes s <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>This function can be invoked from within an interrupt handler even if it is not an I-Class API because it does not touch any critical kernel data structure.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[out]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to a <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00059">59</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<p>References <aclass="el"href="struct_cond_var.html#a0d320ca091de542fccfebabc7716f666">CondVar::c_queue</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, and <aclass="el"href="group__internals.html#ga6d19d0f3ff1fa599b6d9783dec180451">queue_init</a>.</p>
<p>Referenced by <aclass="el"href="classchibios__rt_1_1_cond_var.html#a1b9e183dd1c97f1a0104f57f47197ecc">chibios_rt::CondVar::CondVar()</a>.</p>
<p>Signals one thread that is waiting on the condition variable. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00071">71</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<p>References <aclass="el"href="struct_cond_var.html#a0d320ca091de542fccfebabc7716f666">CondVar::c_queue</a>, <aclass="el"href="group__debug.html#ga6bb6c0f97caab3a66332c8bfbf7a3844">chDbgCheck</a>, <aclass="el"href="group__scheduler.html#gae47a8819a21ef2d521124e76bfb37c95">chSchWakeupS()</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>, <aclass="el"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a">fifo_remove()</a>, <aclass="el"href="group__internals.html#ga8f6bea56a53acc44758fe61c98d68a4e">notempty</a>, and <aclass="el"href="group__scheduler.html#gae1c86078318e11c2fa57ee3c2ec69f61">RDY_OK</a>.</p>
<p>Referenced by <aclass="el"href="classchibios__rt_1_1_cond_var.html#a075c5724485b6f47bdf6f1f003154f02">chibios_rt::CondVar::Signal()</a>.</p>
<areashape="rect"id="node3"href="group__scheduler.html#gae47a8819a21ef2d521124e76bfb37c95"title="Wakes up a thread."alt=""coords="141,31,240,57"/><areashape="rect"id="node9"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="151,81,231,108"/><areashape="rect"id="node5"href="group__debug.html#gac7f8f0653faf2e3a93108ff5333821b7"title="Inserts in the circular debug trace buffer a context switch record."alt=""coords="292,5,372,32"/><areashape="rect"id="node7"href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"title="Inserts a thread in the Ready List."alt=""coords="289,56,375,83"/></map>
<p>Signals one thread that is waiting on the condition variable. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00086">86</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<areashape="rect"id="node3"href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"title="Inserts a thread in the Ready List."alt=""coords="145,5,231,32"/><areashape="rect"id="node5"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="148,56,228,83"/></map>
<p>Signals all threads that are waiting on the condition variable. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00099">99</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<p>References <aclass="el"href="group__condvars.html#ga5cf1f4697985d81ee089b042391df6fc">chCondBroadcastI()</a>, <aclass="el"href="group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20">chSchRescheduleS()</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p>Referenced by <aclass="el"href="classchibios__rt_1_1_cond_var.html#a0111c4947178c9ef6b15e03f24d2e861">chibios_rt::CondVar::Broadcast()</a>.</p>
<areashape="rect"id="node3"href="group__condvars.html#ga5cf1f4697985d81ee089b042391df6fc"title="Signals all threads that are waiting on the condition variable."alt=""coords="336,5,445,32"/><areashape="rect"id="node9"href="group__scheduler.html#ga4e38b4bee3d2330f6a0f1cdb7660af20"title="Performs a reschedule if a higher priority thread is runnable."alt=""coords="163,56,280,83"/><areashape="rect"id="node5"href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"title="Inserts a thread in the Ready List."alt=""coords="503,5,588,32"/><areashape="rect"id="node7"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="505,56,585,83"/><areashape="rect"id="node11"href="group__scheduler.html#ga0257cf203e72a766a52059750cb97e6e"title="Switches to the first thread on the runnable queue."alt=""coords="328,56,453,83"/></map>
<p>Signals all threads that are waiting on the condition variable. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00112">112</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<areashape="rect"id="node3"href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"title="Inserts a thread in the Ready List."alt=""coords="167,5,252,32"/><areashape="rect"id="node5"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="169,56,249,83"/></map>
<p>Waits on the condition variable releasing the mutex lock. </p>
<p>Releases the currently owned mutex, waits on the condition variable, and finally acquires the mutex again. All the sequence is performed atomically. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>The invoking thread <b>must</b> have at least one owned mutex on entry.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_OK</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#gadddadb68e2a2ce061c7df0d647da9996"title="Signals one thread that is waiting on the condition variable.">chCondSignal()</a></code>. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_RESET</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#ga60c24a8060a884313efe82b8404e77f6"title="Signals all threads that are waiting on the condition variable.">chCondBroadcast()</a></code>. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00136">136</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<p>References <aclass="el"href="group__condvars.html#gab6357d80b01ed8d225ef1e30a66248f9">chCondWaitS()</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p>Referenced by <aclass="el"href="classchibios__rt_1_1_cond_var.html#a37e0b0cb4ac5cbe6bbb56c51539284c8">chibios_rt::CondVar::Wait()</a>.</p>
<areashape="rect"id="node3"href="group__condvars.html#gab6357d80b01ed8d225ef1e30a66248f9"title="Waits on the condition variable releasing the mutex lock."alt=""coords="135,56,220,83"/><areashape="rect"id="node5"href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5"title="Locks the specified mutex."alt=""coords="275,31,355,57"/><areashape="rect"id="node7"href="group__scheduler.html#ga97c1c514b755a1e71caf2f19c1ccf986"title="Puts the current thread to sleep into the specified state."alt=""coords="408,5,509,32"/><areashape="rect"id="node9"href="group__internals.html#ga02226b866ae704435baf2ffe259ba0b2"title="Inserts a thread into a priority ordered queue."alt=""coords="423,68,495,95"/><areashape="rect"id="node11"href="group__mutexes.html#ga705fa60fb8aa28a6632f693e83f78c96"title="Unlocks the next owned mutex in reverse lock order."alt=""coords="269,132,360,159"/></map>
<p>Waits on the condition variable releasing the mutex lock. </p>
<p>Releases the currently owned mutex, waits on the condition variable, and finally acquires the mutex again. All the sequence is performed atomically. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>The invoking thread <b>must</b> have at least one owned mutex on entry.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_OK</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#gadddadb68e2a2ce061c7df0d647da9996"title="Signals one thread that is waiting on the condition variable.">chCondSignal()</a></code>. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_RESET</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#ga60c24a8060a884313efe82b8404e77f6"title="Signals all threads that are waiting on the condition variable.">chCondBroadcast()</a></code>. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00158">158</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<areashape="rect"id="node3"href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5"title="Locks the specified mutex."alt=""coords="147,123,227,150"/><areashape="rect"id="node5"href="group__scheduler.html#ga97c1c514b755a1e71caf2f19c1ccf986"title="Puts the current thread to sleep into the specified state."alt=""coords="280,73,381,99"/><areashape="rect"id="node13"href="group__internals.html#ga02226b866ae704435baf2ffe259ba0b2"title="Inserts a thread into a priority ordered queue."alt=""coords="295,174,367,201"/><areashape="rect"id="node15"href="group__mutexes.html#ga705fa60fb8aa28a6632f693e83f78c96"title="Unlocks the next owned mutex in reverse lock order."alt=""coords="141,22,232,49"/><areashape="rect"id="node9"href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"title="Inserts a thread in the Ready List."alt=""coords="288,22,373,49"/><areashape="rect"id="node11"href="group__internals.html#gafff11bcd31d7dc3d1a0a6c66f3fc6ec9"title="Removes a Thread from a queue and returns it."alt=""coords="299,123,363,150"/><areashape="rect"id="node7"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="429,22,509,49"/></map>
<p>Waits on the condition variable releasing the mutex lock. </p>
<p>Releases the currently owned mutex, waits on the condition variable, and finally acquires the mutex again. All the sequence is performed atomically. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>The invoking thread <b>must</b> have at least one owned mutex on entry. </dd>
<dd>
Exiting the function because a timeout does not re-acquire the mutex, the mutex ownership is lost.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>time</em> </td><td>the number of ticks before the operation timeouts, the special value <code>TIME_INFINITE</code> is allowed. It is not possible to specify zero <code>TIME_IMMEDIATE</code> as timeout specification because it would make no sense in this function. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_OK</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#gadddadb68e2a2ce061c7df0d647da9996"title="Signals one thread that is waiting on the condition variable.">chCondSignal()</a></code>. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_RESET</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#ga60c24a8060a884313efe82b8404e77f6"title="Signals all threads that are waiting on the condition variable.">chCondBroadcast()</a></code>. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_TIMEOUT</em> </td><td>if the condvar was not signaled <code>within</code> the specified timeout. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00200">200</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<p>References <aclass="el"href="group__condvars.html#ga9cf6ebe4c9f28cb206fab14984a18d29">chCondWaitTimeoutS()</a>, <aclass="el"href="group__system.html#ga9f6573c0763d1e4e97c63c62edad6e42">chSysLock</a>, and <aclass="el"href="group__system.html#ga5a257fa58a09815eb64a45e2dfbdc22e">chSysUnlock</a>.</p>
<p>Referenced by <aclass="el"href="classchibios__rt_1_1_cond_var.html#a866a352fb3bc95f07abda728d4ae4906">chibios_rt::CondVar::WaitTimeout()</a>.</p>
<areashape="rect"id="node3"href="group__condvars.html#ga9cf6ebe4c9f28cb206fab14984a18d29"title="Waits on the condition variable releasing the mutex lock."alt=""coords="172,81,295,108"/><areashape="rect"id="node5"href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5"title="Locks the specified mutex."alt=""coords="373,5,453,32"/><areashape="rect"id="node7"href="group__internals.html#ga02226b866ae704435baf2ffe259ba0b2"title="Inserts a thread into a priority ordered queue."alt=""coords="532,31,604,57"/><areashape="rect"id="node9"href="group__mutexes.html#ga705fa60fb8aa28a6632f693e83f78c96"title="Unlocks the next owned mutex in reverse lock order."alt=""coords="368,107,459,133"/><areashape="rect"id="node11"href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b"title="Puts the current thread to sleep into the specified state with timeout specification."alt=""coords="344,157,483,184"/></map>
<p>Waits on the condition variable releasing the mutex lock. </p>
<p>Releases the currently owned mutex, waits on the condition variable, and finally acquires the mutex again. All the sequence is performed atomically. </p>
<dlclass="note"><dt><b>Note:</b></dt><dd>The invoking thread <b>must</b> have at least one owned mutex on entry. </dd>
<dd>
Exiting the function because a timeout does not re-acquire the mutex, the mutex ownership is lost.</dd></dl>
<dl><dt><b>Parameters:</b></dt><dd>
<tableborder="0"cellspacing="2"cellpadding="0">
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>cp</em> </td><td>pointer to the <code><aclass="el"href="struct_cond_var.html"title="CondVar structure.">CondVar</a></code> structure </td></tr>
<tr><tdvalign="top"><tt>[in]</tt> </td><tdvalign="top"><em>time</em> </td><td>the number of ticks before the operation timeouts, the special value <code>TIME_INFINITE</code> is allowed. It is not possible to specify zero <code>TIME_IMMEDIATE</code> as timeout specification because it would make no sense in this function. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_OK</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#gadddadb68e2a2ce061c7df0d647da9996"title="Signals one thread that is waiting on the condition variable.">chCondSignal()</a></code>. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_RESET</em> </td><td>if the condvar was signaled using <code><aclass="el"href="group__condvars.html#ga60c24a8060a884313efe82b8404e77f6"title="Signals all threads that are waiting on the condition variable.">chCondBroadcast()</a></code>. </td></tr>
<tr><tdvalign="top"></td><tdvalign="top"><em>RDY_TIMEOUT</em> </td><td>if the condvar was not signaled within the specified timeout. </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <aclass="el"href="chcond_8c_source.html#l00231">231</a> of file <aclass="el"href="chcond_8c_source.html">chcond.c</a>.</p>
<areashape="rect"id="node3"href="group__mutexes.html#ga2d6350c2d147d1165c359f30798205f5"title="Locks the specified mutex."alt=""coords="208,79,288,106"/><areashape="rect"id="node13"href="group__internals.html#ga02226b866ae704435baf2ffe259ba0b2"title="Inserts a thread into a priority ordered queue."alt=""coords="380,130,452,157"/><areashape="rect"id="node15"href="group__mutexes.html#ga705fa60fb8aa28a6632f693e83f78c96"title="Unlocks the next owned mutex in reverse lock order."alt=""coords="203,29,293,55"/><areashape="rect"id="node19"href="group__scheduler.html#ga306e564f678c1a39139639490c77e78b"title="Puts the current thread to sleep into the specified state with timeout specification."alt=""coords="179,206,317,233"/><areashape="rect"id="node5"href="group__scheduler.html#ga97c1c514b755a1e71caf2f19c1ccf986"title="Puts the current thread to sleep into the specified state."alt=""coords="365,181,467,207"/><areashape="rect"id="node9"href="group__scheduler.html#ga535d58cfb3436c8d4e4586c31c062298"title="Inserts a thread in the Ready List."alt=""coords="373,29,459,55"/><areashape="rect"id="node11"href="group__internals.html#gafff11bcd31d7dc3d1a0a6c66f3fc6ec9"title="Removes a Thread from a queue and returns it."alt=""coords="384,79,448,106"/><areashape="rect"id="node7"href="group__internals.html#ga042479f09357fc59befebf4dfe0e9f4a"title="Removes the first-out Thread from a queue and returns it."alt=""coords="515,79,595,106"/><areashape="rect"id="node22"href="group__time.html#ga680d851a74e594cc965101e79891840f"title="Disables a Virtual Timer."alt=""coords="377,282,455,309"/><areashape="rect"id="node24"href="group__time.html#ga1c44c3a0bc64b2954d95cd98b2e7124e"title="Enables a virtual timer."alt=""coords="383,231,449,258"/></map>
Generated on Sun Nov 28 2010 14:09:56 for ChibiOS/RT by <ahref="http://www.doxygen.org/index.html"><imgsrc="doxygen.png"alt="doxygen"align="middle"border="0"></a> 1.7.1</small></address>