<?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.9.1" xml:lang="en-US">
  <compounddef id="classtf_1_1Worker" kind="class" language="C++" prot="public">
    <compoundname>tf::Worker</compoundname>
    <includes refid="worker_8hpp" local="no">taskflow/core/worker.hpp</includes>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classtf_1_1Worker_1a763b2f90bc53f92d680a635fe28e858e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class Executor</definition>
        <argsstring></argsstring>
        <name>Executor</name>
        <param>
          <type><ref refid="classtf_1_1Executor" kindref="compound">Executor</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="46" column="3" bodyfile="taskflow/core/worker.hpp" bodystart="46" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Worker_1af3d14e26ba8af9e6cc5a32aad8446de7" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class Runtime</definition>
        <argsstring></argsstring>
        <name>Runtime</name>
        <param>
          <type><ref refid="classtf_1_1Runtime" kindref="compound">Runtime</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="47" column="3" bodyfile="taskflow/core/worker.hpp" bodystart="47" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classtf_1_1Worker_1a0f36eeb628ab3803180651682f5821f3" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>class</type>
        <definition>friend class WorkerView</definition>
        <argsstring></argsstring>
        <name>WorkerView</name>
        <param>
          <type><ref refid="classtf_1_1WorkerView" kindref="compound">WorkerView</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="48" column="3" bodyfile="taskflow/core/worker.hpp" bodystart="48" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classtf_1_1Worker_1ab21837ab13c416c19d133fc2a73f031c" prot="private" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t tf::Worker::_id</definition>
        <argsstring></argsstring>
        <name>_id</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="84" column="12" bodyfile="taskflow/core/worker.hpp" bodystart="84" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1a59a04a39db3d147221eed60da75a9744" prot="private" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t tf::Worker::_vtm</definition>
        <argsstring></argsstring>
        <name>_vtm</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="85" column="12" bodyfile="taskflow/core/worker.hpp" bodystart="85" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1a0884258c54f630a3b31e4d1e208852bb" prot="private" static="no" mutable="no">
        <type><ref refid="classtf_1_1Executor" kindref="compound">Executor</ref> *</type>
        <definition>Executor* tf::Worker::_executor</definition>
        <argsstring></argsstring>
        <name>_executor</name>
        <initializer>{nullptr}</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="86" column="14" bodyfile="taskflow/core/worker.hpp" bodystart="86" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1a559e98c3b61a201903d70952e39ab14f" prot="private" static="no" mutable="no">
        <type>DefaultNotifier::Waiter *</type>
        <definition>DefaultNotifier::Waiter* tf::Worker::_waiter</definition>
        <argsstring></argsstring>
        <name>_waiter</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="87" column="29" bodyfile="taskflow/core/worker.hpp" bodystart="87" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1a753b13866ccf3badaebf5e92af0bf63f" prot="private" static="no" mutable="no">
        <type><ref refid="cpp/numeric/random" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::default_random_engine</ref></type>
        <definition>std::default_random_engine tf::Worker::_rdgen</definition>
        <argsstring></argsstring>
        <name>_rdgen</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="88" column="32" bodyfile="taskflow/core/worker.hpp" bodystart="88" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1aed8ddf1839659c156bf0750d187b8bbe" prot="private" static="no" mutable="no">
        <type><ref refid="cpp/numeric/random/uniform_int_distribution" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::uniform_int_distribution</ref>&lt; size_t &gt;</type>
        <definition>std::uniform_int_distribution&lt;size_t&gt; tf::Worker::_rdvtm</definition>
        <argsstring></argsstring>
        <name>_rdvtm</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="89" column="35" bodyfile="taskflow/core/worker.hpp" bodystart="89" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1a23ecb42bb5da7483e269427ccbd84d4f" prot="private" static="no" mutable="no">
        <type><ref refid="cpp/thread/thread" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::thread</ref></type>
        <definition>std::thread tf::Worker::_thread</definition>
        <argsstring></argsstring>
        <name>_thread</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="90" column="17" bodyfile="taskflow/core/worker.hpp" bodystart="90" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classtf_1_1Worker_1a582ddc7de274ecd0988af3dfb5d0f5bf" prot="private" static="no" mutable="no">
        <type><ref refid="classtf_1_1BoundedTaskQueue" kindref="compound">BoundedTaskQueue</ref>&lt; Node * &gt;</type>
        <definition>BoundedTaskQueue&lt;Node*&gt; tf::Worker::_wsq</definition>
        <argsstring></argsstring>
        <name>_wsq</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="91" column="22" bodyfile="taskflow/core/worker.hpp" bodystart="91" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1Worker_1a0180ea51cc46551157eaae451b50c7d8" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t tf::Worker::id</definition>
        <argsstring>() const</argsstring>
        <name>id</name>
        <briefdescription>
<para>queries the worker id associated with its parent executor </para>
        </briefdescription>
        <detaileddescription>
<para>A worker id is a unsigned integer in the range <computeroutput>[0, N)</computeroutput>, where <computeroutput>N</computeroutput> is the number of workers spawned at the construction time of the executor. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="59" column="19" bodyfile="taskflow/core/worker.hpp" bodystart="59" bodyend="59"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Worker_1a5e1ec48fd2295d260e8f335ff22b95ae" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t tf::Worker::queue_size</definition>
        <argsstring>() const</argsstring>
        <name>queue_size</name>
        <briefdescription>
<para>queries the size of the queue (i.e., number of enqueued tasks to run) associated with the worker </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="65" column="19" bodyfile="taskflow/core/worker.hpp" bodystart="65" bodyend="65"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Worker_1a0c0505b0ce5b464d4458b5278265429a" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t tf::Worker::queue_capacity</definition>
        <argsstring>() const</argsstring>
        <name>queue_capacity</name>
        <briefdescription>
<para>queries the current capacity of the queue </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="70" column="19" bodyfile="taskflow/core/worker.hpp" bodystart="70" bodyend="70"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Worker_1a0fcc11826d72537655bf9bb50b68a3f5" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1Executor" kindref="compound">Executor</ref> *</type>
        <definition>Executor* tf::Worker::executor</definition>
        <argsstring>()</argsstring>
        <name>executor</name>
        <briefdescription>
<para>acquires the associated executor </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="75" column="21" bodyfile="taskflow/core/worker.hpp" bodystart="75" bodyend="75"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1Worker_1a8ece561266a54409268856ec5768a3c5" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="cpp/thread/thread" kindref="compound" external="/home/thuang295/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::thread</ref> &amp;</type>
        <definition>std::thread&amp; tf::Worker::thread</definition>
        <argsstring>()</argsstring>
        <name>thread</name>
        <briefdescription>
<para>acquires the associated thread </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="taskflow/core/worker.hpp" line="80" column="17" bodyfile="taskflow/core/worker.hpp" bodystart="80" bodyend="80"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to create a worker in an executor </para>
    </briefdescription>
    <detaileddescription>
<para>The class is primarily used by the executor to perform work-stealing algorithm. Users can access a worker object and alter its property (e.g., changing the thread affinity in a POSIX-like system) using <ref refid="classtf_1_1WorkerInterface" kindref="compound">tf::WorkerInterface</ref>. </para>
    </detaileddescription>
    <location file="taskflow/core/worker.hpp" line="44" column="1" bodyfile="taskflow/core/worker.hpp" bodystart="44" bodyend="92"/>
    <listofallmembers>
      <member refid="classtf_1_1Worker_1a0884258c54f630a3b31e4d1e208852bb" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_executor</name></member>
      <member refid="classtf_1_1Worker_1ab21837ab13c416c19d133fc2a73f031c" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_id</name></member>
      <member refid="classtf_1_1Worker_1a753b13866ccf3badaebf5e92af0bf63f" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_rdgen</name></member>
      <member refid="classtf_1_1Worker_1aed8ddf1839659c156bf0750d187b8bbe" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_rdvtm</name></member>
      <member refid="classtf_1_1Worker_1a23ecb42bb5da7483e269427ccbd84d4f" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_thread</name></member>
      <member refid="classtf_1_1Worker_1a59a04a39db3d147221eed60da75a9744" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_vtm</name></member>
      <member refid="classtf_1_1Worker_1a559e98c3b61a201903d70952e39ab14f" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_waiter</name></member>
      <member refid="classtf_1_1Worker_1a582ddc7de274ecd0988af3dfb5d0f5bf" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>_wsq</name></member>
      <member refid="classtf_1_1Worker_1a763b2f90bc53f92d680a635fe28e858e" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>Executor</name></member>
      <member refid="classtf_1_1Worker_1a0fcc11826d72537655bf9bb50b68a3f5" prot="public" virt="non-virtual"><scope>tf::Worker</scope><name>executor</name></member>
      <member refid="classtf_1_1Worker_1a0180ea51cc46551157eaae451b50c7d8" prot="public" virt="non-virtual"><scope>tf::Worker</scope><name>id</name></member>
      <member refid="classtf_1_1Worker_1a0c0505b0ce5b464d4458b5278265429a" prot="public" virt="non-virtual"><scope>tf::Worker</scope><name>queue_capacity</name></member>
      <member refid="classtf_1_1Worker_1a5e1ec48fd2295d260e8f335ff22b95ae" prot="public" virt="non-virtual"><scope>tf::Worker</scope><name>queue_size</name></member>
      <member refid="classtf_1_1Worker_1af3d14e26ba8af9e6cc5a32aad8446de7" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>Runtime</name></member>
      <member refid="classtf_1_1Worker_1a8ece561266a54409268856ec5768a3c5" prot="public" virt="non-virtual"><scope>tf::Worker</scope><name>thread</name></member>
      <member refid="classtf_1_1Worker_1a0f36eeb628ab3803180651682f5821f3" prot="private" virt="non-virtual"><scope>tf::Worker</scope><name>WorkerView</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
