/
usr
/
share
/
doc
/
libaprutil1-dev
/
html
/
Upload File
HOME
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.13"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Apache Portable Runtime Utility Library: Thread Pool routines</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">Apache Portable Runtime Utility Library </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.13 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); </script> <div id="main-nav"></div> </div><!-- top --> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Thread Pool routines<div class="ingroups"><a class="el" href="group___a_p_r___util.html">APR Utility Functions</a></div></div> </div> </div><!--header--> <div class="contents"> <div class="dynheader"> Collaboration diagram for Thread Pool routines:</div> <div class="dyncontent"> <center><table><tr><td><img src="group___a_p_r___util___t_p.png" border="0" alt="" usemap="#group______a__p__r______util______t__p"/> <!-- MAP 0 --> </td></tr></table></center> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:ga312691aaa41f45820e13c2566a4c6780"><td class="memItemLeft" align="right" valign="top"><a id="ga312691aaa41f45820e13c2566a4c6780"></a> #define </td><td class="memItemRight" valign="bottom"><b>APR_THREAD_TASK_PRIORITY_LOWEST</b>   0</td></tr> <tr class="separator:ga312691aaa41f45820e13c2566a4c6780"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga19879c994e9a71e9954e580a179b62c1"><td class="memItemLeft" align="right" valign="top"><a id="ga19879c994e9a71e9954e580a179b62c1"></a> #define </td><td class="memItemRight" valign="bottom"><b>APR_THREAD_TASK_PRIORITY_LOW</b>   63</td></tr> <tr class="separator:ga19879c994e9a71e9954e580a179b62c1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga84d2ac8fa8a538661715b0d2e2736cb1"><td class="memItemLeft" align="right" valign="top"><a id="ga84d2ac8fa8a538661715b0d2e2736cb1"></a> #define </td><td class="memItemRight" valign="bottom"><b>APR_THREAD_TASK_PRIORITY_NORMAL</b>   127</td></tr> <tr class="separator:ga84d2ac8fa8a538661715b0d2e2736cb1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga289d5e1346b5807b43db9ea7d4ea5c17"><td class="memItemLeft" align="right" valign="top"><a id="ga289d5e1346b5807b43db9ea7d4ea5c17"></a> #define </td><td class="memItemRight" valign="bottom"><b>APR_THREAD_TASK_PRIORITY_HIGH</b>   191</td></tr> <tr class="separator:ga289d5e1346b5807b43db9ea7d4ea5c17"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5fa01e4e210270d119382a80aae13d1d"><td class="memItemLeft" align="right" valign="top"><a id="ga5fa01e4e210270d119382a80aae13d1d"></a> #define </td><td class="memItemRight" valign="bottom"><b>APR_THREAD_TASK_PRIORITY_HIGHEST</b>   255</td></tr> <tr class="separator:ga5fa01e4e210270d119382a80aae13d1d"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:gab31b68a03a0d5eec3e1879c253d3b620"><td class="memItemLeft" align="right" valign="top">typedef struct apr_thread_pool </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a></td></tr> <tr class="separator:gab31b68a03a0d5eec3e1879c253d3b620"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga9c4351f2f93d223c159c1f8e5481830e"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga9c4351f2f93d223c159c1f8e5481830e">apr_thread_pool_create</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> **me, apr_size_t init_threads, apr_size_t max_threads, apr_pool_t *pool)</td></tr> <tr class="separator:ga9c4351f2f93d223c159c1f8e5481830e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab06b4fdfc684c88781abf201d53a44eb"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gab06b4fdfc684c88781abf201d53a44eb">apr_thread_pool_destroy</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gab06b4fdfc684c88781abf201d53a44eb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad66fb92679a8f456ff8e8ea1629eb041"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gad66fb92679a8f456ff8e8ea1629eb041">apr_thread_pool_push</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_thread_start_t func, void *param, apr_byte_t priority, void *owner)</td></tr> <tr class="separator:gad66fb92679a8f456ff8e8ea1629eb041"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa79df50c650442b8d39e169f4e422d3b"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaa79df50c650442b8d39e169f4e422d3b">apr_thread_pool_schedule</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_thread_start_t func, void *param, apr_interval_time_t time, void *owner)</td></tr> <tr class="separator:gaa79df50c650442b8d39e169f4e422d3b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9acb6218820184f0617eecf56f0d3d84"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga9acb6218820184f0617eecf56f0d3d84">apr_thread_pool_top</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_thread_start_t func, void *param, apr_byte_t priority, void *owner)</td></tr> <tr class="separator:ga9acb6218820184f0617eecf56f0d3d84"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaee3d7332cf2591f42472e8be0bcbff87"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaee3d7332cf2591f42472e8be0bcbff87">apr_thread_pool_tasks_cancel</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, void *owner)</td></tr> <tr class="separator:gaee3d7332cf2591f42472e8be0bcbff87"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4f628cbec0365bb39be715a3c7ff0ec3"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga4f628cbec0365bb39be715a3c7ff0ec3">apr_thread_pool_tasks_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:ga4f628cbec0365bb39be715a3c7ff0ec3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac0324b95f6b61dbfb184cbe84c541b42"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gac0324b95f6b61dbfb184cbe84c541b42">apr_thread_pool_scheduled_tasks_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gac0324b95f6b61dbfb184cbe84c541b42"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9a2642a5a61df9560da438e818d5fad3"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga9a2642a5a61df9560da438e818d5fad3">apr_thread_pool_threads_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:ga9a2642a5a61df9560da438e818d5fad3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf839cda931928964f450e3a17d153b24"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaf839cda931928964f450e3a17d153b24">apr_thread_pool_busy_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gaf839cda931928964f450e3a17d153b24"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae6c5b87d1fee7150f74baa1008cb00c0"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gae6c5b87d1fee7150f74baa1008cb00c0">apr_thread_pool_idle_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gae6c5b87d1fee7150f74baa1008cb00c0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga07c5e4dca589ff024e9adfc8f818c481"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga07c5e4dca589ff024e9adfc8f818c481">apr_thread_pool_idle_max_set</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_size_t cnt)</td></tr> <tr class="separator:ga07c5e4dca589ff024e9adfc8f818c481"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaab5c9c8afc46793ea5c413edfc9ef46e"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaab5c9c8afc46793ea5c413edfc9ef46e">apr_thread_pool_tasks_run_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gaab5c9c8afc46793ea5c413edfc9ef46e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5eda07fb7fac1b4c4165137f34c5c31c"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga5eda07fb7fac1b4c4165137f34c5c31c">apr_thread_pool_tasks_high_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:ga5eda07fb7fac1b4c4165137f34c5c31c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab6dcdaa6129caf35fa370e694a67ff08"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gab6dcdaa6129caf35fa370e694a67ff08">apr_thread_pool_threads_high_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gab6dcdaa6129caf35fa370e694a67ff08"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafcf0a761a77b2a27fc043d650606c122"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gafcf0a761a77b2a27fc043d650606c122">apr_thread_pool_threads_idle_timeout_count</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gafcf0a761a77b2a27fc043d650606c122"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6dd7fdcaac5cb2848aecd2ee1426d41e"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga6dd7fdcaac5cb2848aecd2ee1426d41e">apr_thread_pool_idle_max_get</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:ga6dd7fdcaac5cb2848aecd2ee1426d41e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa352b6337b31ebab796b604240a907e9"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaa352b6337b31ebab796b604240a907e9">apr_thread_pool_thread_max_set</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_size_t cnt)</td></tr> <tr class="separator:gaa352b6337b31ebab796b604240a907e9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga382b90c482d39184b2a80157f64166ec"><td class="memItemLeft" align="right" valign="top">apr_interval_time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga382b90c482d39184b2a80157f64166ec">apr_thread_pool_idle_wait_set</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_interval_time_t timeout)</td></tr> <tr class="separator:ga382b90c482d39184b2a80157f64166ec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6ef255c2d556fa757e9b78c2745c9bac"><td class="memItemLeft" align="right" valign="top">apr_interval_time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga6ef255c2d556fa757e9b78c2745c9bac">apr_thread_pool_idle_wait_get</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:ga6ef255c2d556fa757e9b78c2745c9bac"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaca755ea05976c5e1b782dcf40a1ef443"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaca755ea05976c5e1b782dcf40a1ef443">apr_thread_pool_thread_max_get</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:gaca755ea05976c5e1b782dcf40a1ef443"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1c35f1bd809dde4300f4a3f77026f446"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga1c35f1bd809dde4300f4a3f77026f446">apr_thread_pool_threshold_set</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me, apr_size_t val)</td></tr> <tr class="separator:ga1c35f1bd809dde4300f4a3f77026f446"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga38f4ad8e384cde0e9d32867031c7a935"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#ga38f4ad8e384cde0e9d32867031c7a935">apr_thread_pool_threshold_get</a> (<a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> *me)</td></tr> <tr class="separator:ga38f4ad8e384cde0e9d32867031c7a935"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaefbaa0f765567e8e5a79adaaf346755f"><td class="memItemLeft" align="right" valign="top">apr_status_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___t_p.html#gaefbaa0f765567e8e5a79adaaf346755f">apr_thread_pool_task_owner_get</a> (apr_thread_t *thd, void **owner)</td></tr> <tr class="separator:gaefbaa0f765567e8e5a79adaaf346755f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <h2 class="groupheader">Typedef Documentation</h2> <a id="gab31b68a03a0d5eec3e1879c253d3b620"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab31b68a03a0d5eec3e1879c253d3b620">◆ </a></span>apr_thread_pool_t</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct apr_thread_pool <a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Opaque Thread Pool structure. </p> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="gaf839cda931928964f450e3a17d153b24"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaf839cda931928964f450e3a17d153b24">◆ </a></span>apr_thread_pool_busy_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_busy_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current number of busy threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of busy threads </dd></dl> </div> </div> <a id="ga9c4351f2f93d223c159c1f8e5481830e"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga9c4351f2f93d223c159c1f8e5481830e">◆ </a></span>apr_thread_pool_create()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_create </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> ** </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>init_threads</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>max_threads</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_pool_t * </td> <td class="paramname"><em>pool</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Create a thread pool </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The pointer in which to return the newly created apr_thread_pool object, or NULL if thread pool creation fails. </td></tr> <tr><td class="paramname">init_threads</td><td>The number of threads to be created initially, this number will also be used as the initial value for the maximum number of idle threads. </td></tr> <tr><td class="paramname">max_threads</td><td>The maximum number of threads that can be created </td></tr> <tr><td class="paramname">pool</td><td>The pool to use </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if the thread pool was created successfully. Otherwise, the error code. </dd></dl> </div> </div> <a id="gab06b4fdfc684c88781abf201d53a44eb"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab06b4fdfc684c88781abf201d53a44eb">◆ </a></span>apr_thread_pool_destroy()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_destroy </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destroy the thread pool and stop all the threads </p><dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if all threads are stopped. </dd></dl> </div> </div> <a id="gae6c5b87d1fee7150f74baa1008cb00c0"></a> <h2 class="memtitle"><span class="permalink"><a href="#gae6c5b87d1fee7150f74baa1008cb00c0">◆ </a></span>apr_thread_pool_idle_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_idle_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current number of idle threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of idle threads </dd></dl> </div> </div> <a id="ga6dd7fdcaac5cb2848aecd2ee1426d41e"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga6dd7fdcaac5cb2848aecd2ee1426d41e">◆ </a></span>apr_thread_pool_idle_max_get()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_idle_max_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the maximum number of idle threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The current maximum number </dd></dl> </div> </div> <a id="ga07c5e4dca589ff024e9adfc8f818c481"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga07c5e4dca589ff024e9adfc8f818c481">◆ </a></span>apr_thread_pool_idle_max_set()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_idle_max_set </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>cnt</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the maximum number of idle threads. Number of current idle threads will be reduced to the new limit. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">cnt</td><td>The number </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The number of threads that were stopped. </dd></dl> </div> </div> <a id="ga6ef255c2d556fa757e9b78c2745c9bac"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga6ef255c2d556fa757e9b78c2745c9bac">◆ </a></span>apr_thread_pool_idle_wait_get()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_interval_time_t apr_thread_pool_idle_wait_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the maximum wait time (in microseconds) of an idling thread that exceeds the maximum number of idling threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The current maximum wait time </dd></dl> </div> </div> <a id="ga382b90c482d39184b2a80157f64166ec"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga382b90c482d39184b2a80157f64166ec">◆ </a></span>apr_thread_pool_idle_wait_set()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_interval_time_t apr_thread_pool_idle_wait_set </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_interval_time_t </td> <td class="paramname"><em>timeout</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the maximum wait time (in microseconds) of an idling thread that exceeds the maximum number of idling threads. A non-zero value allows for the reaping of idling threads to shrink over time. Which helps reduce thrashing. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">timeout</td><td>The number of microseconds an idle thread should wait till it reaps itself </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The original maximum wait time </dd></dl> </div> </div> <a id="gad66fb92679a8f456ff8e8ea1629eb041"></a> <h2 class="memtitle"><span class="permalink"><a href="#gad66fb92679a8f456ff8e8ea1629eb041">◆ </a></span>apr_thread_pool_push()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_push </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_thread_start_t </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_byte_t </td> <td class="paramname"><em>priority</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>owner</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Schedule a task to the bottom of the tasks of same priority. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">func</td><td>The task function </td></tr> <tr><td class="paramname">param</td><td>The parameter for the task function </td></tr> <tr><td class="paramname">priority</td><td>The priority of the task. </td></tr> <tr><td class="paramname">owner</td><td>Owner of this task. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if the task had been scheduled successfully </dd></dl> </div> </div> <a id="gaa79df50c650442b8d39e169f4e422d3b"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaa79df50c650442b8d39e169f4e422d3b">◆ </a></span>apr_thread_pool_schedule()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_schedule </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_thread_start_t </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_interval_time_t </td> <td class="paramname"><em>time</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>owner</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Schedule a task to be run after a delay </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">func</td><td>The task function </td></tr> <tr><td class="paramname">param</td><td>The parameter for the task function </td></tr> <tr><td class="paramname">time</td><td>Time in microseconds </td></tr> <tr><td class="paramname">owner</td><td>Owner of this task. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if the task had been scheduled successfully </dd></dl> </div> </div> <a id="gac0324b95f6b61dbfb184cbe84c541b42"></a> <h2 class="memtitle"><span class="permalink"><a href="#gac0324b95f6b61dbfb184cbe84c541b42">◆ </a></span>apr_thread_pool_scheduled_tasks_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_scheduled_tasks_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current number of scheduled tasks waiting in the queue </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of scheduled tasks in the queue </dd></dl> </div> </div> <a id="gaefbaa0f765567e8e5a79adaaf346755f"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaefbaa0f765567e8e5a79adaaf346755f">◆ </a></span>apr_thread_pool_task_owner_get()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_task_owner_get </td> <td>(</td> <td class="paramtype">apr_thread_t * </td> <td class="paramname"><em>thd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void ** </td> <td class="paramname"><em>owner</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Get owner of the task currently been executed by the thread. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">thd</td><td>The thread is executing a task </td></tr> <tr><td class="paramname">owner</td><td>Pointer to receive owner of the task. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if the owner is retrieved successfully </dd></dl> </div> </div> <a id="gaee3d7332cf2591f42472e8be0bcbff87"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaee3d7332cf2591f42472e8be0bcbff87">◆ </a></span>apr_thread_pool_tasks_cancel()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_tasks_cancel </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>owner</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Cancel tasks submitted by the owner. If there is any task from the owner that is currently running, the function will spin until the task finished. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">owner</td><td>Owner of the task </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if the task has been cancelled successfully </dd></dl> <dl class="section note"><dt>Note</dt><dd>The task function should not be calling cancel, otherwise the function may get stuck forever. The function assert if it detect such a case. </dd></dl> </div> </div> <a id="ga4f628cbec0365bb39be715a3c7ff0ec3"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga4f628cbec0365bb39be715a3c7ff0ec3">◆ </a></span>apr_thread_pool_tasks_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_tasks_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current number of tasks waiting in the queue </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of tasks in the queue </dd></dl> </div> </div> <a id="ga5eda07fb7fac1b4c4165137f34c5c31c"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga5eda07fb7fac1b4c4165137f34c5c31c">◆ </a></span>apr_thread_pool_tasks_high_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_tasks_high_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get high water mark of the number of tasks waiting to run </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>High water mark of tasks waiting to run </dd></dl> </div> </div> <a id="gaab5c9c8afc46793ea5c413edfc9ef46e"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaab5c9c8afc46793ea5c413edfc9ef46e">◆ </a></span>apr_thread_pool_tasks_run_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_tasks_run_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get number of tasks that have run </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of tasks that have run </dd></dl> </div> </div> <a id="gaca755ea05976c5e1b782dcf40a1ef443"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaca755ea05976c5e1b782dcf40a1ef443">◆ </a></span>apr_thread_pool_thread_max_get()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_thread_max_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the maximum number of threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The current maximum number </dd></dl> </div> </div> <a id="gaa352b6337b31ebab796b604240a907e9"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaa352b6337b31ebab796b604240a907e9">◆ </a></span>apr_thread_pool_thread_max_set()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_thread_max_set </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>cnt</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the maximum number of threads. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">cnt</td><td>Number of threads </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The original maximum number of threads </dd></dl> </div> </div> <a id="ga9a2642a5a61df9560da438e818d5fad3"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga9a2642a5a61df9560da438e818d5fad3">◆ </a></span>apr_thread_pool_threads_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_threads_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the current number of threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Total number of threads </dd></dl> </div> </div> <a id="gab6dcdaa6129caf35fa370e694a67ff08"></a> <h2 class="memtitle"><span class="permalink"><a href="#gab6dcdaa6129caf35fa370e694a67ff08">◆ </a></span>apr_thread_pool_threads_high_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_threads_high_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get high water mark of the number of threads </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>High water mark of threads in thread pool </dd></dl> </div> </div> <a id="gafcf0a761a77b2a27fc043d650606c122"></a> <h2 class="memtitle"><span class="permalink"><a href="#gafcf0a761a77b2a27fc043d650606c122">◆ </a></span>apr_thread_pool_threads_idle_timeout_count()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_threads_idle_timeout_count </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Get the number of idle threads that were destroyed after timing out </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Number of idle threads that timed out </dd></dl> </div> </div> <a id="ga38f4ad8e384cde0e9d32867031c7a935"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga38f4ad8e384cde0e9d32867031c7a935">◆ </a></span>apr_thread_pool_threshold_get()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_threshold_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the threshold of tasks in queue to trigger a new thread. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The current threshold </dd></dl> </div> </div> <a id="ga1c35f1bd809dde4300f4a3f77026f446"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga1c35f1bd809dde4300f4a3f77026f446">◆ </a></span>apr_thread_pool_threshold_set()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_size_t apr_thread_pool_threshold_set </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>val</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Access function for the threshold of tasks in queue to trigger a new thread. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">cnt</td><td>The new threshold </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The original threshold </dd></dl> </div> </div> <a id="ga9acb6218820184f0617eecf56f0d3d84"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga9acb6218820184f0617eecf56f0d3d84">◆ </a></span>apr_thread_pool_top()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_status_t apr_thread_pool_top </td> <td>(</td> <td class="paramtype"><a class="el" href="group___a_p_r___util___t_p.html#gab31b68a03a0d5eec3e1879c253d3b620">apr_thread_pool_t</a> * </td> <td class="paramname"><em>me</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_thread_start_t </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>param</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_byte_t </td> <td class="paramname"><em>priority</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>owner</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Schedule a task to the top of the tasks of same priority. </p><dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">me</td><td>The thread pool </td></tr> <tr><td class="paramname">func</td><td>The task function </td></tr> <tr><td class="paramname">param</td><td>The parameter for the task function </td></tr> <tr><td class="paramname">priority</td><td>The priority of the task. </td></tr> <tr><td class="paramname">owner</td><td>Owner of this task. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS if the task had been scheduled successfully </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.13 </small></address> </body> </html>