From dc062bfb00b89d204234aeab24d2d7b631abecf7 Mon Sep 17 00:00:00 2001 From: Benjamin Kyd Date: Sat, 6 Apr 2019 18:09:05 +0100 Subject: [PATCH] Basic pool settup --- .gitignore | 2 +- CMakeLists.txt | 30 ++++++++++++++++++++++++++++++ CMakeSettings.json | 17 +++++++++++++++++ Stuff.lnk | Bin 0 -> 723 bytes libpool/libpool.cpp | 5 +++++ libpool/libpool.h | 36 ++++++++++++++++++++++++++++++++++++ output.exe | Bin 0 -> 46454 bytes test/build.bat | 1 + test/main.cpp | 9 +++++++++ 9 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 CMakeLists.txt create mode 100644 CMakeSettings.json create mode 100644 Stuff.lnk create mode 100644 libpool/libpool.cpp create mode 100644 output.exe create mode 100644 test/build.bat diff --git a/.gitignore b/.gitignore index 687f872..a023e8e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ .vscode/ - +.vs/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..62d91f8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required(VERSION 3.7) +Project(libpool) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} CMakeModules/) +cmake_policy(SET CMP0037 OLD) +set(CMAKE_BUILD_TYPE Release) + +set(executable output) +set(SrcDIR ./test) +set(IncludeDIR ./include) + +include_directories(${executable} ./libpool) + +set(THREADS_PREFER_PTHREAD_FLAD ON) +find_package(Threads REQUIRED) + +file(GLOB SourceFiles + ${SrcDIR}/* +) + +add_executable(${executable} ${SourceFiles}) + +set_target_properties(${executable} PROPERTIES + CXX_STANDARD 17 + CXX_EXTENSIONS OFF +) + +target_link_libraries(${executable} + Threads::Threads +) diff --git a/CMakeSettings.json b/CMakeSettings.json new file mode 100644 index 0000000..2b43668 --- /dev/null +++ b/CMakeSettings.json @@ -0,0 +1,17 @@ +{ + "configurations": [ + { + "name": "x64-Release", + "generator": "Ninja", + "configurationType": "RelWithDebInfo", + "inheritEnvironments": [ + "msvc_x64_x64" + ], + "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}", + "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}", + "cmakeCommandArgs": "", + "buildCommandArgs": "-v", + "ctestCommandArgs": "" + } + ] +} \ No newline at end of file diff --git a/Stuff.lnk b/Stuff.lnk new file mode 100644 index 0000000000000000000000000000000000000000..8842c30415a39c6cfb36b34885068e84bb70226f GIT binary patch literal 723 zcmeZaU|?VrVFHp23+Ph&veA z8T1%p7!VdDK(sH20Ma0kl3JWyl3$>km||&~WmwA47ZsKDs>arDPm>jIc!koY{TGy;I{^QZ#gq`x-b86L3l}Vnvx{QPLRd& zK+FQfE(}&c2SPv(kOFBk_^7)5y}Oja(vM6DJ@a0#kp+r#fs}wWfdUZW9|i_dAfF$I z85}@_)Jt$wYXX@d)4@7;fV3M!CPNNGDuV(rkn@486d=0@C=Sxi2gG3A@Pq;6gTfr- zmStJV8n#m}32wc{aKQhj#060J%K9zb>xNS1-Y5{N+tY!u6NS=(FSvE0K! lZ;5S156CkaAO#*kyzs-92|{0vcr0kpwK9 +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class Pool { +public: + Pool(int iNumThreads = 2); + + void resize(int iNumThreads); + + template + auto addToQueue(F&& f, Args&&... args) + -> std::future::type>; + +private: + std::vector m_vWorkers; + std::queue> m_qTaskQueue; + + std::mutex m_mQueueMutex; + std::condition_variable m_cCondition; + bool m_bStop; + + int m_iThreads = 2; +}; + +#endif \ No newline at end of file diff --git a/output.exe b/output.exe new file mode 100644 index 0000000000000000000000000000000000000000..e2c24e9d010f256c403108f6efb8ca4bc59ed9e3 GIT binary patch literal 46454 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 GJ^u?-Ob1i| literal 0 HcmV?d00001 diff --git a/test/build.bat b/test/build.bat new file mode 100644 index 0000000..eb12e64 --- /dev/null +++ b/test/build.bat @@ -0,0 +1 @@ +g++ main.cpp ../libpool/*.cpp -I../libpool/ -pthread -o ../output.exe \ No newline at end of file diff --git a/test/main.cpp b/test/main.cpp index e69de29..b396b90 100644 --- a/test/main.cpp +++ b/test/main.cpp @@ -0,0 +1,9 @@ +#include +#include + +int main(int argc, char** argv) { + Pool threadPool { 5 }; + + + +}