<trclass="memdesc:ga29120af1ce48d5ecd651795f2e427755"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Opaque type for a mutex. <ahref="group___t_h_r_e_a_d.html#ga29120af1ce48d5ecd651795f2e427755">More...</a><br/></td></tr>
<trclass="memdesc:gaa81ea27e801a8c0cf453b256ab38e067"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a mutex. <ahref="group___t_h_r_e_a_d.html#gaa81ea27e801a8c0cf453b256ab38e067">More...</a><br/></td></tr>
<trclass="memdesc:gab38a90b92a1d294f7e1886e36a405518"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Lock/acquire the mutex. <ahref="group___t_h_r_e_a_d.html#gab38a90b92a1d294f7e1886e36a405518">More...</a><br/></td></tr>
<trclass="memdesc:gacf1f5a5f7f7257663505af02b717272c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Unlock/release the mutex. <ahref="group___t_h_r_e_a_d.html#gacf1f5a5f7f7257663505af02b717272c">More...</a><br/></td></tr>
<trclass="memdesc:ga66757c34c788b873ad9acfb60a5e008b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Destroy a mutex. <ahref="group___t_h_r_e_a_d.html#ga66757c34c788b873ad9acfb60a5e008b">More...</a><br/></td></tr>
<trclass="memdesc:ga439cd27c17f11fc56a911a126811fb87"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Opaque type for a condition. <ahref="group___t_h_r_e_a_d.html#ga439cd27c17f11fc56a911a126811fb87">More...</a><br/></td></tr>
<trclass="memdesc:ga7f8a4c1ce6d9ad2dde1d293fad317522"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a condition. <ahref="group___t_h_r_e_a_d.html#ga7f8a4c1ce6d9ad2dde1d293fad317522">More...</a><br/></td></tr>
<trclass="memdesc:ga6edf64f08cd0b48299800852d52245d6"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Wait for the condition to be signaled. <ahref="group___t_h_r_e_a_d.html#ga6edf64f08cd0b48299800852d52245d6">More...</a><br/></td></tr>
<trclass="memdesc:ga0f3687b35d6f3c395e1156a8499d1632"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Signal waiting threads on a condition. <ahref="group___t_h_r_e_a_d.html#ga0f3687b35d6f3c395e1156a8499d1632">More...</a><br/></td></tr>
<trclass="memdesc:gafba4c2356f6d070d43e5f0d5c71fdbee"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Destroy a condition. <ahref="group___t_h_r_e_a_d.html#gafba4c2356f6d070d43e5f0d5c71fdbee">More...</a><br/></td></tr>
<trclass="memdesc:gaed72b7b75acb6eaeb620085b01ee365b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Opaque type for a thread handle. <ahref="group___t_h_r_e_a_d.html#gaed72b7b75acb6eaeb620085b01ee365b">More...</a><br/></td></tr>
<trclass="memdesc:gae5f9aa8219645e0e836aaf0c453db624"><tdclass="mdescLeft"> </td><tdclass="mdescRight">User function to execute in a thread. <ahref="group___t_h_r_e_a_d.html#gae5f9aa8219645e0e836aaf0c453db624">More...</a><br/></td></tr>
<trclass="memdesc:ga541be683ba651c8244bde3f0d3650c92"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Creates a new thread. <ahref="group___t_h_r_e_a_d.html#ga541be683ba651c8244bde3f0d3650c92">More...</a><br/></td></tr>
<trclass="memdesc:gad49986b56da75f8609b7c940c17f713f"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Wait for a thread to be finished and release associated resources to the thread handle. <ahref="group___t_h_r_e_a_d.html#gad49986b56da75f8609b7c940c17f713f">More...</a><br/></td></tr>
<trclass="memdesc:ga9395f97b1e62916dc8b5d2ea4749f74a"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Opaque type for a thread local storage. <ahref="group___t_h_r_e_a_d.html#ga9395f97b1e62916dc8b5d2ea4749f74a">More...</a><br/></td></tr>
<trclass="memdesc:ga38f8cdfd288c8ff8963444403549ad6c"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Type of the function used to free a TLS value. <ahref="group___t_h_r_e_a_d.html#ga38f8cdfd288c8ff8963444403549ad6c">More...</a><br/></td></tr>
<trclass="memitem:ga90caa0ff9c1e54033ef1e3010faf03a9"><tdclass="memItemLeft"align="right"valign="top">void * </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___t_h_r_e_a_d.html#ga90caa0ff9c1e54033ef1e3010faf03a9">opj_tls_get</a> (<aclass="el"href="structopj__tls__t.html">opj_tls_t</a> *tls, int key)</td></tr>
<trclass="memdesc:ga90caa0ff9c1e54033ef1e3010faf03a9"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Get a thread local value corresponding to the provided key. <ahref="group___t_h_r_e_a_d.html#ga90caa0ff9c1e54033ef1e3010faf03a9">More...</a><br/></td></tr>
<trclass="memitem:gab1b97098aabc89f98eca8f8f7274f3e7"><tdclass="memItemLeft"align="right"valign="top"><aclass="el"href="openjpeg_8h.html#abb5dad6294f4611f1925388e919b16f4">OPJ_BOOL</a> </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___t_h_r_e_a_d.html#gab1b97098aabc89f98eca8f8f7274f3e7">opj_tls_set</a> (<aclass="el"href="structopj__tls__t.html">opj_tls_t</a> *tls, int key, void *value, <aclass="el"href="group___t_h_r_e_a_d.html#ga38f8cdfd288c8ff8963444403549ad6c">opj_tls_free_func</a> free_func)</td></tr>
<trclass="memdesc:gab1b97098aabc89f98eca8f8f7274f3e7"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Set a thread local value corresponding to the provided key. <ahref="group___t_h_r_e_a_d.html#gab1b97098aabc89f98eca8f8f7274f3e7">More...</a><br/></td></tr>
<trclass="memdesc:ga656a5e32341e7433cf6b70e53b002c5e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Opaque type for a thread pool. <ahref="group___t_h_r_e_a_d.html#ga656a5e32341e7433cf6b70e53b002c5e">More...</a><br/></td></tr>
<trclass="memdesc:gaf29983f3245378c30edbef61fe22913b"><tdclass="mdescLeft"> </td><tdclass="mdescRight">User function to execute in a thread. <ahref="group___t_h_r_e_a_d.html#gaf29983f3245378c30edbef61fe22913b">More...</a><br/></td></tr>
<trclass="memdesc:ga24a3a1b343df1168a3beb57babfa0916"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Create a new thread pool. <ahref="group___t_h_r_e_a_d.html#ga24a3a1b343df1168a3beb57babfa0916">More...</a><br/></td></tr>
<trclass="memdesc:gaf389ecb3a583a30077fc546eef767c89"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Submit a new job to be run by one of the thread in the thread pool. <ahref="group___t_h_r_e_a_d.html#gaf389ecb3a583a30077fc546eef767c89">More...</a><br/></td></tr>
<trclass="memitem:ga0ced26c80598e49bf3a964bb802130f1"><tdclass="memItemLeft"align="right"valign="top">void </td><tdclass="memItemRight"valign="bottom"><aclass="el"href="group___t_h_r_e_a_d.html#ga0ced26c80598e49bf3a964bb802130f1">opj_thread_pool_wait_completion</a> (<aclass="el"href="structopj__thread__pool__t.html">opj_thread_pool_t</a> *tp, int max_remaining_jobs)</td></tr>
<trclass="memdesc:ga0ced26c80598e49bf3a964bb802130f1"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Wait that no more than max_remaining_jobs jobs are remaining in the queue of the thread pool. <ahref="group___t_h_r_e_a_d.html#ga0ced26c80598e49bf3a964bb802130f1">More...</a><br/></td></tr>
<trclass="memdesc:ga4faef98a6b8495c63e9e5ce9cf0c3fc3"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Return the number of threads associated with the thread pool. <ahref="group___t_h_r_e_a_d.html#ga4faef98a6b8495c63e9e5ce9cf0c3fc3">More...</a><br/></td></tr>
<trclass="memdesc:gae44e8b9258d0baa19e3671a382faa33e"><tdclass="mdescLeft"> </td><tdclass="mdescRight">Destroy a thread pool. <ahref="group___t_h_r_e_a_d.html#gae44e8b9258d0baa19e3671a382faa33e">More...</a><br/></td></tr>
<p>The functions in <aclass="el"href="thread_8c.html">thread.c</a> have for goal to manage mutex, conditions, thread creation and thread pools that accept jobs. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hrclass="footer"/><addressclass="footer"><small>
Generated by  <ahref="http://www.doxygen.org/index.html">