From 03b11840f44bd72c96dfb7861c078565111e2f92 Mon Sep 17 00:00:00 2001 From: marcelb Date: Thu, 29 Feb 2024 17:01:55 +0100 Subject: [PATCH] AsyncLoop (ThreadPool, task execute loop), interval, timeout, asynco, wait --- .vscode/c_cpp_properties.json | 16 ++++++ .vscode/settings.json | 27 +++++++++ .vscode/tasks.json | 28 +++++++++ README.md | 0 lib/asynco.hpp | 93 ++++++++++++++++++++++++++++++ lib/event.hpp | 40 +++++++++++++ lib/loop.hpp | 91 +++++++++++++++++++++++++++++ src/pool.cpp | 0 test/test | Bin 0 -> 304880 bytes test/test.cpp | 104 ++++++++++++++++++++++++++++++++++ 10 files changed, 399 insertions(+) create mode 100644 .vscode/c_cpp_properties.json create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 README.md create mode 100644 lib/asynco.hpp create mode 100644 lib/event.hpp create mode 100644 lib/loop.hpp create mode 100644 src/pool.cpp create mode 100755 test/test create mode 100644 test/test.cpp diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..4039bef --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,16 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "${workspaceFolder}/**" + ], + "defines": [], + "compilerPath": "/usr/bin/gcc", + "cStandard": "c17", + "cppStandard": "gnu++17", + "intelliSenseMode": "linux-gcc-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3d201ae --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,27 @@ +{ + "files.associations": { + "iostream": "cpp", + "functional": "cpp", + "thread": "cpp", + "chrono": "cpp", + "ostream": "cpp", + "condition_variable": "cpp", + "array": "cpp", + "atomic": "cpp", + "cwchar": "cpp", + "deque": "cpp", + "unordered_map": "cpp", + "vector": "cpp", + "exception": "cpp", + "initializer_list": "cpp", + "iosfwd": "cpp", + "mutex": "cpp", + "new": "cpp", + "ratio": "cpp", + "stdexcept": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "future": "cpp" + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..2193d8d --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: gcc build active file", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/lib/asynco.hpp b/lib/asynco.hpp new file mode 100644 index 0000000..9b68337 --- /dev/null +++ b/lib/asynco.hpp @@ -0,0 +1,93 @@ +#ifndef _ASYNCO_ +#define _ASYNCO_ + +#include "loop.hpp" + +using namespace std; + +namespace marcelb { + +#ifndef ON_ASYNC +#define ON_ASYNC +AsyncLoop on_async; +#endif + +class interval { + bool run = true; + function callback; + const time_t _duration; + + public: + interval(function func, const time_t duration): callback(func), _duration(duration) { + #ifndef ON_ASYNC + throw string("Not on_async defined!"); + #endif + + auto task = [&] () { + while (run) { + this_thread::sleep_for(chrono::milliseconds(_duration)); + if (run) { + callback(); + } + } + }; + + on_async.put_task(task); + } + + void clear() { + run = false; + } + + ~interval() { + clear(); + } +}; + +class timeout { + bool run = true; + function callback; + const time_t _duration; + + public: + timeout(function f, const time_t duration): callback(f), _duration(duration) { + #ifndef ON_ASYNC + throw string("Not on_async defined!"); + #endif + + auto task = [&] () { + this_thread::sleep_for(chrono::milliseconds(_duration)); + if (run) { + callback(); + } + }; + + on_async.put_task(task); + } + + void clear() { + run = false; + } + + ~timeout() { + clear(); + } +}; + + +template +auto asynco(F&& f, Args&&... args) -> future::type> { + using return_type = typename result_of::type; + + future res = on_async.put_task(bind(forward(f), forward(args)...)); + return res; +} + +template +T wait(future r) { + return r.get(); +} + +} + +#endif \ No newline at end of file diff --git a/lib/event.hpp b/lib/event.hpp new file mode 100644 index 0000000..cfbdd7e --- /dev/null +++ b/lib/event.hpp @@ -0,0 +1,40 @@ +#ifndef _EVENT_ +#define _EVENT_ + +#include +#include +#include +#include + +using namespace std; + +namespace marcelb { + +class event { + map&)>> events; +public: + + template + void on(const string& key, function f) { + // events[key] = [f](Args... args) { + // f(args...); + // }; + } + + template + void emit(const string& key, Args&&... args) { + if (events.find(key) == events.end()) { + cout << "No defined listener for event: " << key << endl; + return; + } + else { + for (auto& func : events[key]) { + func(forward(args)...); + } + } + } +}; + +} + +#endif \ No newline at end of file diff --git a/lib/loop.hpp b/lib/loop.hpp new file mode 100644 index 0000000..3dfd37e --- /dev/null +++ b/lib/loop.hpp @@ -0,0 +1,91 @@ +#ifndef _LOOP_ +#define _LOOP_ + +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +namespace marcelb { + +#ifdef ON_ASYNC +extern AsyncLoop on_async; +#endif + +class AsyncLoop { + private: + vector workers; + queue> tasks; + mutex q_io; + condition_variable cv; + bool stop; + + public: + AsyncLoop(size_t pool_size = thread::hardware_concurrency()) : stop(false) { + for (size_t i = 0; i < pool_size; ++i) { + workers.emplace_back([this] { + while (true) { + function task; + { + unique_lock lock(q_io); + cv.wait(lock, [this] { return stop || !tasks.empty(); }); + if (stop && tasks.empty()) + return; + task = move(tasks.front()); + tasks.pop(); + } + task(); + } + }); + } + } + + template + auto put_task(F&& f, Args&&... args) + -> future::type> { + using return_type = typename result_of::type; + + auto task = make_shared>(bind(forward(f), forward(args)...)); + future res = task->get_future(); + { + unique_lock lock(q_io); + + if (stop) { + throw runtime_error("Pool is stoped!"); + } + + tasks.emplace([task]() { (*task)(); }); + } + + cv.notify_one(); + return res; + } + + unsigned int count_tasks() { + return tasks.size(); + } + + unsigned int count_threads() { + return workers.size(); + } + + ~AsyncLoop() { + { + unique_lock lock(q_io); + stop = true; + } + cv.notify_all(); + for (thread& worker : workers) + worker.join(); + } + +}; + +} + +#endif \ No newline at end of file diff --git a/src/pool.cpp b/src/pool.cpp new file mode 100644 index 0000000..e69de29 diff --git a/test/test b/test/test new file mode 100755 index 0000000000000000000000000000000000000000..eef6b04f1a2b178149421a897dee2717db05ac8d GIT binary patch literal 304880 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

8}g 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%0D@ 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 +#include + +using namespace std; +using namespace marcelb; +using namespace this_thread; + +#ifndef ON_ASYNC +#define ON_ASYNC +AsyncLoop on_async; +#endif + +int main () { + + auto start = chrono::high_resolution_clock::now(); + + interval inter1 ([&]() { + cout << "interval prvi " << chrono::duration_cast(chrono::high_resolution_clock::now() - start).count() << endl; + }, 1000); + + cout << "Blokira stoka" << endl; + + interval inter2 ([&]() { + cout << "interval drugi " << chrono::duration_cast(chrono::high_resolution_clock::now() - start).count() << endl; + }, 2000); + + interval inter3 ([&]() { + cout << "interval treći " << chrono::duration_cast(chrono::high_resolution_clock::now() - start).count() << endl; + }, 3000); + + timeout time1 ( [&] () { + cout << "Close interval 1 i 2 " << chrono::duration_cast(chrono::high_resolution_clock::now() - start).count() << endl; + inter1.clear(); + inter2.clear(); + }, 10000); + + timeout time2 ([&] () { + cout << "Close interval 3 " << chrono::duration_cast(chrono::high_resolution_clock::now() - start).count() << endl; + inter3.clear(); + }, 20000); + + + // for (int i = 0; i < 8; ++i) { + // pool.put_task( [&] (int id) { + // this_thread::sleep_for(chrono::seconds(1)); + // cout << a*i << endl; + // }, i); + // } + + // auto res1 = pool.put_task( [] () { + // cout << "Jebiga " <