<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.14">
  <compounddef id="classforpy_1_1threading_1_1thread__pool" kind="class" language="C++" prot="public">
    <compoundname>forpy::threading::thread_pool</compoundname>
    <includes refid="ctpl_8h" local="no">ctpl.h</includes>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1a7f58d36428162c1e2b375113bd00151e" prot="private" static="no" mutable="no">
        <type>std::vector&lt; std::unique_ptr&lt; std::thread &gt; &gt;</type>
        <definition>std::vector&lt;std::unique_ptr&lt;std::thread&gt; &gt; forpy::threading::thread_pool::threads</definition>
        <argsstring></argsstring>
        <name>threads</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="288" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="288" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1a9307094feb4d1f01ff0a651448f81a80" prot="private" static="no" mutable="no">
        <type>std::vector&lt; std::shared_ptr&lt; std::atomic&lt; bool &gt; &gt; &gt;</type>
        <definition>std::vector&lt;std::shared_ptr&lt;std::atomic&lt;bool&gt; &gt; &gt; forpy::threading::thread_pool::flags</definition>
        <argsstring></argsstring>
        <name>flags</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="289" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="289" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1a82bf22c7fe0eab4da78ea3b4eb1dd6b1" prot="private" static="no" mutable="no">
        <type><ref refid="classforpy_1_1threading_1_1detail_1_1_queue" kindref="compound">detail::Queue</ref>&lt; std::function&lt; void(<ref refid="namespaceforpy_1_1threading_1a0454f9ca919afa1f786f40abecbc0ffc" kindref="member">INFOT</ref>)&gt; * &gt;</type>
        <definition>detail::Queue&lt;std::function&lt;void(INFOT)&gt; *&gt; forpy::threading::thread_pool::q</definition>
        <argsstring></argsstring>
        <name>q</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="290" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="290" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1ab875f9f5d7cf0f773d8682bec5986a78" prot="private" static="no" mutable="no">
        <type>std::atomic&lt; bool &gt;</type>
        <definition>std::atomic&lt;bool&gt; forpy::threading::thread_pool::isDone</definition>
        <argsstring></argsstring>
        <name>isDone</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="291" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="291" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1ad54e73503f80bb369ef816c979d5263e" prot="private" static="no" mutable="no">
        <type>std::atomic&lt; bool &gt;</type>
        <definition>std::atomic&lt;bool&gt; forpy::threading::thread_pool::isStop</definition>
        <argsstring></argsstring>
        <name>isStop</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="292" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="292" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1a2441eb7bc713bc66c89532a721f6cb19" prot="private" static="no" mutable="no">
        <type>std::atomic&lt; int &gt;</type>
        <definition>std::atomic&lt;int&gt; forpy::threading::thread_pool::nWaiting</definition>
        <argsstring></argsstring>
        <name>nWaiting</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="293" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="293" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1a8f6ad65d996d5b6c7c62e1990b780680" prot="private" static="no" mutable="no">
        <type>std::mutex</type>
        <definition>std::mutex forpy::threading::thread_pool::mutex</definition>
        <argsstring></argsstring>
        <name>mutex</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="295" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="295" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1threading_1_1thread__pool_1a62003c15c75795b96a1144ab9542ff23" prot="private" static="no" mutable="no">
        <type>std::condition_variable</type>
        <definition>std::condition_variable forpy::threading::thread_pool::cv</definition>
        <argsstring></argsstring>
        <name>cv</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="296" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="296" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a60bf54202abc186b165f123df1bd24cf" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::threading::thread_pool::thread_pool</definition>
        <argsstring>()</argsstring>
        <name>thread_pool</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="77" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="77" bodyend="77"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a273c87ddac976418f06543a058237963" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::threading::thread_pool::thread_pool</definition>
        <argsstring>(int nThreads)</argsstring>
        <name>thread_pool</name>
        <param>
          <type>int</type>
          <declname>nThreads</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="78" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="78" bodyend="81"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1aa7f143dcfeda39ca126c1bf73e265f97" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>forpy::threading::thread_pool::~thread_pool</definition>
        <argsstring>()</argsstring>
        <name>~thread_pool</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="84" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="84" bodyend="84"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a3b1566564662f2c4c63e61ae0b0777c9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>int forpy::threading::thread_pool::size</definition>
        <argsstring>()</argsstring>
        <name>size</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="87" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="87" bodyend="87"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a0919c3ea2ff9f195ef73804efb2a5869" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>int</type>
        <definition>int forpy::threading::thread_pool::n_idle</definition>
        <argsstring>()</argsstring>
        <name>n_idle</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="90" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="90" bodyend="90"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1aa00f49e3b64e9285634ffd1e0d9cd4c2" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>std::thread &amp;</type>
        <definition>std::thread&amp; forpy::threading::thread_pool::get_thread</definition>
        <argsstring>(int i)</argsstring>
        <name>get_thread</name>
        <param>
          <type>int</type>
          <declname>i</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="91" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="91" bodyend="91"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a7b5bf432e02e622a42afb66d64b60f58" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void forpy::threading::thread_pool::resize</definition>
        <argsstring>(int nThreads)</argsstring>
        <name>resize</name>
        <param>
          <type>int</type>
          <declname>nThreads</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="97" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="97" bodyend="125"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1aa0c16c2b18e42bfdd7ae9591b8e14ecd" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void forpy::threading::thread_pool::clear_queue</definition>
        <argsstring>()</argsstring>
        <name>clear_queue</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="128" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="128" bodyend="131"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a80c7b60bd2557200cb269ec9fd33b54a" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>std::function&lt; void(<ref refid="namespaceforpy_1_1threading_1a0454f9ca919afa1f786f40abecbc0ffc" kindref="member">INFOT</ref>)&gt;</type>
        <definition>std::function&lt;void(INFOT)&gt; forpy::threading::thread_pool::pop</definition>
        <argsstring>()</argsstring>
        <name>pop</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="134" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="134" bodyend="142"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a8e28d17519bb25272573aa38abadddc9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void forpy::threading::thread_pool::stop</definition>
        <argsstring>(bool isWait=false)</argsstring>
        <name>stop</name>
        <param>
          <type>bool</type>
          <declname>isWait</declname>
          <defval>false</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="148" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="148" bodyend="174"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a3411c75d9e8adbc3ba7456d85db4cdc8" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename C</type>
          </param>
          <param>
            <type>typename F</type>
          </param>
          <param>
            <type>typename M</type>
          </param>
          <param>
            <type>typename...</type>
            <declname>Rest</declname>
            <defname>Rest</defname>
          </param>
        </templateparamlist>
        <type>auto</type>
        <definition>auto forpy::threading::thread_pool::push_move</definition>
        <argsstring>(F &amp;&amp;f, C *c, M &amp;&amp;movable, Rest &amp;&amp;... rest) -&gt; std::future&lt; decltype((c-&gt; *f)(new forpy::Desk(0), movable, rest...))&gt;</argsstring>
        <name>push_move</name>
        <param>
          <type>F &amp;&amp;</type>
          <declname>f</declname>
        </param>
        <param>
          <type>C *</type>
          <declname>c</declname>
        </param>
        <param>
          <type>M &amp;&amp;</type>
          <declname>movable</declname>
        </param>
        <param>
          <type>Rest &amp;&amp;...</type>
          <declname>rest</declname>
        </param>
        <briefdescription>
<para>For member functions (with parameters). </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="178" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="178" bodyend="190"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a29e3cdb95f388b0b21cd503c7173a4d2" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename C</type>
          </param>
          <param>
            <type>typename F</type>
          </param>
          <param>
            <type>typename...</type>
            <declname>Rest</declname>
            <defname>Rest</defname>
          </param>
        </templateparamlist>
        <type>auto</type>
        <definition>auto forpy::threading::thread_pool::push</definition>
        <argsstring>(F &amp;&amp;f, C *c, Rest &amp;&amp;... rest) -&gt; std::future&lt; decltype((c-&gt; *f)(new forpy::Desk(0), rest...))&gt;</argsstring>
        <name>push</name>
        <param>
          <type>F &amp;&amp;</type>
          <declname>f</declname>
        </param>
        <param>
          <type>C *</type>
          <declname>c</declname>
        </param>
        <param>
          <type>Rest &amp;&amp;...</type>
          <declname>rest</declname>
        </param>
        <briefdescription>
<para>For member functions (with parameters). </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="194" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="194" bodyend="205"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a49cea250683b9a9fc52385789b4eae1d" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename F</type>
          </param>
          <param>
            <type>typename...</type>
            <declname>Rest</declname>
            <defname>Rest</defname>
          </param>
        </templateparamlist>
        <type>auto</type>
        <definition>auto forpy::threading::thread_pool::push</definition>
        <argsstring>(F &amp;&amp;f, Rest &amp;&amp;... rest) -&gt; std::future&lt; decltype(f(new forpy::Desk(0), rest...))&gt;</argsstring>
        <name>push</name>
        <param>
          <type>F &amp;&amp;</type>
          <declname>f</declname>
        </param>
        <param>
          <type>Rest &amp;&amp;...</type>
          <declname>rest</declname>
        </param>
        <briefdescription>
<para>For functions with parameters. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="209" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="209" bodyend="220"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a976e6d963880379f7f9b43ba6f533f98" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename F</type>
          </param>
        </templateparamlist>
        <type>auto</type>
        <definition>auto forpy::threading::thread_pool::push</definition>
        <argsstring>(F &amp;&amp;f) -&gt; std::future&lt; decltype(f(new forpy::Desk(0)))&gt;</argsstring>
        <name>push</name>
        <param>
          <type>F &amp;&amp;</type>
          <declname>f</declname>
        </param>
        <briefdescription>
<para>For functions without parameters. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="224" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="224" bodyend="233"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a28759c9a177e27fa6488457e36edf971" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void forpy::threading::thread_pool::init</definition>
        <argsstring>()</argsstring>
        <name>init</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="235" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="235" bodyend="239"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1ac669d04d8071a9f2c86b4dc3ed8655c7" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::threading::thread_pool::thread_pool</definition>
        <argsstring>(const thread_pool &amp;)=delete</argsstring>
        <name>thread_pool</name>
        <param>
          <type>const <ref refid="classforpy_1_1threading_1_1thread__pool" kindref="compound">thread_pool</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="243" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1acda30b8d50e219b9abd1eceed19083fc" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::threading::thread_pool::thread_pool</definition>
        <argsstring>(thread_pool &amp;&amp;)=delete</argsstring>
        <name>thread_pool</name>
        <param>
          <type><ref refid="classforpy_1_1threading_1_1thread__pool" kindref="compound">thread_pool</ref> &amp;&amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="244" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a70cefd6ac406d82cc720f157c641acbe" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="classforpy_1_1threading_1_1thread__pool" kindref="compound">thread_pool</ref> &amp;</type>
        <definition>thread_pool&amp; forpy::threading::thread_pool::operator=</definition>
        <argsstring>(const thread_pool &amp;)=delete</argsstring>
        <name>operator=</name>
        <param>
          <type>const <ref refid="classforpy_1_1threading_1_1thread__pool" kindref="compound">thread_pool</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="245" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1ae94bd6f3895e335192d038312ac5c74e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="classforpy_1_1threading_1_1thread__pool" kindref="compound">thread_pool</ref> &amp;</type>
        <definition>thread_pool&amp; forpy::threading::thread_pool::operator=</definition>
        <argsstring>(thread_pool &amp;&amp;)=delete</argsstring>
        <name>operator=</name>
        <param>
          <type><ref refid="classforpy_1_1threading_1_1thread__pool" kindref="compound">thread_pool</ref> &amp;&amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="246" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1threading_1_1thread__pool_1a6b4c6c47566081aedf7c6e6400aa9a87" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void forpy::threading::thread_pool::set_thread</definition>
        <argsstring>(int i)</argsstring>
        <name>set_thread</name>
        <param>
          <type>int</type>
          <declname>i</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="248" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="248" bodyend="286"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <collaborationgraph>
      <node id="198">
        <label>forpy::threading::thread_pool</label>
        <link refid="classforpy_1_1threading_1_1thread__pool"/>
        <childnode refid="199" relation="usage">
          <edgelabel>q</edgelabel>
        </childnode>
        <childnode refid="201" relation="usage">
          <edgelabel>threads</edgelabel>
        </childnode>
        <childnode refid="204" relation="usage">
          <edgelabel>flags</edgelabel>
        </childnode>
      </node>
      <node id="199">
        <label>forpy::threading::detail::Queue&lt; std::function&lt; void(forpy::Desk)&gt; *&gt;</label>
        <link refid="classforpy_1_1threading_1_1detail_1_1_queue"/>
        <childnode refid="200" relation="usage">
          <edgelabel>q</edgelabel>
        </childnode>
      </node>
      <node id="202">
        <label>std::unique_ptr&lt; std::thread &gt;</label>
        <childnode refid="203" relation="usage">
          <edgelabel>ptr</edgelabel>
        </childnode>
      </node>
      <node id="203">
        <label>std::thread</label>
      </node>
      <node id="204">
        <label>std::vector&lt; std::shared_ptr&lt; std::atomic&lt; bool &gt; &gt; &gt;</label>
      </node>
      <node id="200">
        <label>std::queue&lt; std::function&lt; void(forpy::Desk)&gt; *&gt;</label>
      </node>
      <node id="201">
        <label>std::vector&lt; std::unique_ptr&lt; std::thread &gt; &gt;</label>
        <childnode refid="202" relation="usage">
          <edgelabel>elements</edgelabel>
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" line="75" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h" bodystart="75" bodyend="297"/>
    <listofallmembers>
      <member refid="classforpy_1_1threading_1_1thread__pool_1aa0c16c2b18e42bfdd7ae9591b8e14ecd" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>clear_queue</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a62003c15c75795b96a1144ab9542ff23" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>cv</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a9307094feb4d1f01ff0a651448f81a80" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>flags</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1aa00f49e3b64e9285634ffd1e0d9cd4c2" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>get_thread</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a28759c9a177e27fa6488457e36edf971" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>init</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1ab875f9f5d7cf0f773d8682bec5986a78" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>isDone</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1ad54e73503f80bb369ef816c979d5263e" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>isStop</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a8f6ad65d996d5b6c7c62e1990b780680" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>mutex</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a0919c3ea2ff9f195ef73804efb2a5869" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>n_idle</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a2441eb7bc713bc66c89532a721f6cb19" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>nWaiting</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a70cefd6ac406d82cc720f157c641acbe" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>operator=</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1ae94bd6f3895e335192d038312ac5c74e" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>operator=</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a80c7b60bd2557200cb269ec9fd33b54a" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>pop</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a29e3cdb95f388b0b21cd503c7173a4d2" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>push</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a49cea250683b9a9fc52385789b4eae1d" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>push</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a976e6d963880379f7f9b43ba6f533f98" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>push</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a3411c75d9e8adbc3ba7456d85db4cdc8" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>push_move</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a82bf22c7fe0eab4da78ea3b4eb1dd6b1" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>q</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a7b5bf432e02e622a42afb66d64b60f58" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>resize</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a6b4c6c47566081aedf7c6e6400aa9a87" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>set_thread</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a3b1566564662f2c4c63e61ae0b0777c9" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>size</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a8e28d17519bb25272573aa38abadddc9" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>stop</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a60bf54202abc186b165f123df1bd24cf" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>thread_pool</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a273c87ddac976418f06543a058237963" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>thread_pool</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1ac669d04d8071a9f2c86b4dc3ed8655c7" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>thread_pool</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1acda30b8d50e219b9abd1eceed19083fc" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>thread_pool</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1a7f58d36428162c1e2b375113bd00151e" prot="private" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>threads</name></member>
      <member refid="classforpy_1_1threading_1_1thread__pool_1aa7f143dcfeda39ca126c1bf73e265f97" prot="public" virt="non-virtual"><scope>forpy::threading::thread_pool</scope><name>~thread_pool</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
