📄 class_plugin_thread_pool_1_1_thread_pool.html
字号:
</div><div class="memdoc"><p>This method is called by a thread when it is free to procees a request. It deques the request -fifo <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00164">164</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00247">PluginThreadPool::ThreadPool< T >::m_RequestQueue</a>.</div></div><p><a class="anchor" name="27605e5cc423913a7a89984194b66f53"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::HandleRequest" ref="27605e5cc423913a7a89984194b66f53" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::HandleRequest </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00119">119</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00239">PluginThreadPool::ThreadPool< T >::root</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00181">PluginThreadPool::ThreadPool< T >::ProcessList()</a>.</div></div><p><a class="anchor" name="725fd7df525c33165c8823a231e83c3f"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::IncrementThreadCount" ref="725fd7df525c33165c8823a231e83c3f" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::IncrementThreadCount </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table></div><div class="memdoc"><p>This method increments the thread count of the thread pool in a thread safe manner <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00219">219</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00244">PluginThreadPool::ThreadPool< T >::m_threadCount</a>.</div></div><p><a class="anchor" name="1d1e3dff773360670050c11735cf284f"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::operator=" ref="1d1e3dff773360670050c11735cf284f" args="(const ThreadPool &)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">ThreadPool</a>& <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">ThreadPool</a>< T > & </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline, private]</code></td> </tr> </table></div><div class="memdoc"><p><p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00048">48</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.</div></div><p><a class="anchor" name="25d1455518239dc2c722bd93c9fdb80a"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ProcessList" ref="25d1455518239dc2c722bd93c9fdb80a" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::ProcessList </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table></div><div class="memdoc"><p>This waits on a event that is set when a new request is pushed to the queue to be processes <p>or a maximum two seconds<p>the queue is a resource under contention<p>If empty wait for the event to occur<p>Call to the <a class="el" href="class_plugin_thread_pool_1_1_thread_chain.html">ThreadChain</a> method to handle a requesr<p>printf("m_RequestQueue is NOT Empty\n");<p>To avoid busy-looping <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00181">181</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00235">PluginThreadPool::ThreadPool< T >::critsec</a>, <a class="el" href="_thread_pool_8h-source.html#l00119">PluginThreadPool::ThreadPool< T >::HandleRequest()</a>, <a class="el" href="_thread_pool_8h-source.html#l00245">PluginThreadPool::ThreadPool< T >::m_pending</a>, <a class="el" href="_thread_pool_8h-source.html#l00247">PluginThreadPool::ThreadPool< T >::m_RequestQueue</a>, and <a class="el" href="_thread_pool_8h-source.html#l00032">PluginThreadPool::MAX_WAITTIMEOUT</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00172">PluginThreadPool::ThreadPool< T >::ProcessListProxy()</a>.</div></div><p><a class="anchor" name="f048fb1c01a66c230bfd09485ca47861"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ProcessListProxy" ref="f048fb1c01a66c230bfd09485ca47861" args="(LPVOID param)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">static UINT <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::ProcessListProxy </td> <td>(</td> <td class="paramtype">LPVOID </td> <td class="paramname"> <em>param</em> </td> <td> ) </td> <td width="100%"><code> [inline, static]</code></td> </tr> </table></div><div class="memdoc"><p>This is the proxy thread method that calls the real ProcessList method. <p><p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00172">172</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00181">PluginThreadPool::ThreadPool< T >::ProcessList()</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00052">PluginThreadPool::ThreadPool< T >::ThreadPool()</a>.</div></div><p><a class="anchor" name="8dfcd872c27739892faf35f145eb2ce6"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::QueueRequest" ref="8dfcd872c27739892faf35f145eb2ce6" args="(Command< T > *cmdPtr)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">void <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::QueueRequest </td> <td>(</td> <td class="paramtype"><a class="el" href="class_plugin_thread_pool_1_1_command.html">Command</a>< T > * </td> <td class="paramname"> <em>cmdPtr</em> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table></div><div class="memdoc"><p>New Method used to Queue the request in a list. This can be called from multiple threads <p>If this is a valid pointer<p>printf("Q Size=%d\n",m_RequestQueue.size());<p>signal the ProcessList to process the <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00141">141</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00245">PluginThreadPool::ThreadPool< T >::m_pending</a>, and <a class="el" href="_thread_pool_8h-source.html#l00247">PluginThreadPool::ThreadPool< T >::m_RequestQueue</a>.</div></div><p><a class="anchor" name="72558bda6253316968ced2412643281c"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ThreadChecker" ref="72558bda6253316968ced2412643281c" args="()" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::ThreadChecker </td> <td>(</td> <td class="paramname"> </td> <td> ) </td> <td width="100%"><code> [inline]</code></td> </tr> </table></div><div class="memdoc"><p>This method initates the root to propogates the check of each <a class="el" href="class_plugin_thread_pool_1_1_thread_chain.html">ThreadChain</a> object to see if it is in a hung state <p>minimum time <p>Definition at line <a class="el" href="_thread_pool_8h-source.html#l00106">106</a> of file <a class="el" href="_thread_pool_8h-source.html">ThreadPool.h</a>.<p>References <a class="el" href="_thread_pool_8h-source.html#l00239">PluginThreadPool::ThreadPool< T >::root</a>, and <a class="el" href="_thread_pool_8h-source.html#l00031">PluginThreadPool::THREAD_CHECKTIME</a>.<p>Referenced by <a class="el" href="_thread_pool_8h-source.html#l00097">PluginThreadPool::ThreadPool< T >::ThreadCheckerProxy()</a>.</div></div><p><a class="anchor" name="a9a2180d79c1881d964a567703b168ff"></a><!-- doxytag: member="PluginThreadPool::ThreadPool::ThreadCheckerProxy" ref="a9a2180d79c1881d964a567703b168ff" args="(LPVOID param)" --><div class="memitem"><div class="memproto"><div class="memtemplate">template<typename T> </div> <table class="memname"> <tr> <td class="memname">static UINT <a class="el" href="class_plugin_thread_pool_1_1_thread_pool.html">PluginThreadPool::ThreadPool</a>< T >::ThreadCheckerProxy </td> <td>(</td> <td class="paramtype">LPVOID </td> <td class="paramname"> <em>param</em> </td> <td> ) </td> <td width="100%"><code> [inline, static]</code></td> </tr> </table></div><div class="memdoc">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -