thread_pool#
Include dependency graph for thread_pool.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"5" [label="functional" tooltip="functional"]
"1" [label="src/thread_pool.h" tooltip="src/thread_pool.h" fillcolor="#BFBFBF"]
"19" [label="variant" tooltip="variant"]
"13" [label="utility.h" tooltip="utility.h"]
"17" [label="string" tooltip="string"]
"18" [label="string_view" tooltip="string_view"]
"15" [label="condition_variable" tooltip="condition_variable"]
"6" [label="future" tooltip="future"]
"8" [label="optional" tooltip="optional"]
"11" [label="vector" tooltip="vector"]
"10" [label="utility" tooltip="utility"]
"2" [label="task_pool.h" tooltip="task_pool.h"]
"4" [label="deque" tooltip="deque"]
"7" [label="mutex" tooltip="mutex"]
"3" [label="chrono" tooltip="chrono"]
"12" [label="move_by_copy.h" tooltip="move_by_copy.h"]
"20" [label="thread" tooltip="thread"]
"9" [label="type_traits" tooltip="type_traits"]
"14" [label="algorithm" tooltip="algorithm"]
"16" [label="memory" tooltip="memory"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "20" [dir=forward tooltip="include"]
"13" -> "14" [dir=forward tooltip="include"]
"13" -> "15" [dir=forward tooltip="include"]
"13" -> "16" [dir=forward tooltip="include"]
"13" -> "7" [dir=forward tooltip="include"]
"13" -> "8" [dir=forward tooltip="include"]
"13" -> "17" [dir=forward tooltip="include"]
"13" -> "18" [dir=forward tooltip="include"]
"13" -> "9" [dir=forward tooltip="include"]
"13" -> "19" [dir=forward tooltip="include"]
"13" -> "11" [dir=forward tooltip="include"]
"2" -> "3" [dir=forward tooltip="include"]
"2" -> "4" [dir=forward tooltip="include"]
"2" -> "5" [dir=forward tooltip="include"]
"2" -> "6" [dir=forward tooltip="include"]
"2" -> "7" [dir=forward tooltip="include"]
"2" -> "8" [dir=forward tooltip="include"]
"2" -> "9" [dir=forward tooltip="include"]
"2" -> "10" [dir=forward tooltip="include"]
"2" -> "11" [dir=forward tooltip="include"]
"2" -> "12" [dir=forward tooltip="include"]
"2" -> "13" [dir=forward tooltip="include"]
"12" -> "10" [dir=forward tooltip="include"]
}](../../_images/graphviz-d4dc96f1a78551b7f1f3d760838e89c5fc1c57da.png)
This graph shows which files directly or indirectly include thread_pool.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"11" [label="src/platform/linux/x11grab.cpp" tooltip="src/platform/linux/x11grab.cpp"]
"2" [label="src/entry_handler.h" tooltip="src/entry_handler.h"]
"1" [label="src/thread_pool.h" tooltip="src/thread_pool.h" fillcolor="#BFBFBF"]
"4" [label="src/entry_handler.cpp" tooltip="src/entry_handler.cpp"]
"3" [label="src/config.cpp" tooltip="src/config.cpp"]
"15" [label="src/upnp.cpp" tooltip="src/upnp.cpp"]
"9" [label="src/input.cpp" tooltip="src/input.cpp"]
"10" [label="src/main.cpp" tooltip="src/main.cpp"]
"12" [label="src/platform/windows/input.cpp" tooltip="src/platform/windows/input.cpp"]
"16" [label="src/video.cpp" tooltip="src/video.cpp"]
"5" [label="src/globals.h" tooltip="src/globals.h"]
"13" [label="src/platform/windows/misc.cpp" tooltip="src/platform/windows/misc.cpp"]
"6" [label="src/audio.cpp" tooltip="src/audio.cpp"]
"14" [label="src/stream.cpp" tooltip="src/stream.cpp"]
"7" [label="src/confighttp.cpp" tooltip="src/confighttp.cpp"]
"8" [label="src/globals.cpp" tooltip="src/globals.cpp"]
"17" [label="src/platform/macos/misc.mm" tooltip="src/platform/macos/misc.mm"]
"2" -> "3" [dir=back tooltip="include"]
"2" -> "4" [dir=back tooltip="include"]
"2" -> "5" [dir=back tooltip="include"]
"2" -> "10" [dir=back tooltip="include"]
"2" -> "17" [dir=back tooltip="include"]
"2" -> "13" [dir=back tooltip="include"]
"1" -> "2" [dir=back tooltip="include"]
"1" -> "5" [dir=back tooltip="include"]
"1" -> "9" [dir=back tooltip="include"]
"5" -> "6" [dir=back tooltip="include"]
"5" -> "7" [dir=back tooltip="include"]
"5" -> "4" [dir=back tooltip="include"]
"5" -> "8" [dir=back tooltip="include"]
"5" -> "9" [dir=back tooltip="include"]
"5" -> "10" [dir=back tooltip="include"]
"5" -> "11" [dir=back tooltip="include"]
"5" -> "12" [dir=back tooltip="include"]
"5" -> "13" [dir=back tooltip="include"]
"5" -> "14" [dir=back tooltip="include"]
"5" -> "15" [dir=back tooltip="include"]
"5" -> "16" [dir=back tooltip="include"]
}](../../_images/graphviz-c4ce835c64645eb505808bf749bc00cca0cb16d7.png)
todo
-
namespace thread_pool_util#
-
class ThreadPool : public task_pool_util::TaskPool#
- #include <src/thread_pool.h>
Inheritence diagram for thread_pool_util::ThreadPool:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="thread_pool_util::ThreadPool" tooltip="thread_pool_util::ThreadPool" fillcolor="#BFBFBF"]
"2" [label="task_pool_util::TaskPool" tooltip="task_pool_util::TaskPool"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-e93d572f3d63d2c1083a0e5ca07fd9040928ac08.png)
Collaboration diagram for thread_pool_util::ThreadPool:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="thread_pool_util::ThreadPool" tooltip="thread_pool_util::ThreadPool" fillcolor="#BFBFBF"]
"2" [label="task_pool_util::TaskPool" tooltip="task_pool_util::TaskPool"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-e93d572f3d63d2c1083a0e5ca07fd9040928ac08.png)
Allow threads to execute unhindered while keeping full control over the threads.
Public Types
-
typedef TaskPool::__task __task#
Public Functions
-
inline void _main()#
-
inline void join()#
-
template<class Function, class X, class Y, class ...Args>
inline auto pushDelayed(Function &&newTask, std::chrono::duration<X, Y> duration, Args&&... args)#
-
inline void start(int threads)#
-
inline void stop()#
-
inline ThreadPool()#
-
inline explicit ThreadPool(int threads)#
-
inline ~ThreadPool() noexcept#
-
typedef TaskPool::__task __task#
-
class ThreadPool : public task_pool_util::TaskPool#