From 443ae47fc210bcfe10f6f6c5ac8aa3453e1d29d2 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 14 Nov 2017 21:16:30 +0000 Subject: Adding syncqueue --- tests/syncqueuetest.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tests/syncqueuetest.cpp (limited to 'tests/syncqueuetest.cpp') diff --git a/tests/syncqueuetest.cpp b/tests/syncqueuetest.cpp new file mode 100644 index 00000000..cb9a920e --- /dev/null +++ b/tests/syncqueuetest.cpp @@ -0,0 +1,46 @@ +#include + +#include +#include + +using namespace yage; + +SyncQueue queue; +std::atomic_int j; + +void push_to_queue1(int elements) +{ + for (int i = 0; i < elements; i++) { + queue.push(1); + j.fetch_add(1, std::memory_order_relaxed); + } + std::cout << "Done 1\n"; +} + +void push_to_queue2(int elements) +{ + for (int i = 0; i < elements; i++) { + queue.push(2); + j.fetch_add(1, std::memory_order_relaxed); + } + std::cout << "Done 2\n"; +} + +int main() +{ + j.store(0); + std::thread first(push_to_queue1, 100000); + std::thread second(push_to_queue2, 100000); + + std::cout << "created threads, now adding in main\n"; + for (int i = 0; i < 1000000; ++i) { + queue.push(i); + j.fetch_add(1, std::memory_order_relaxed); + } + + std::cout << "now joining the threads\n"; + first.join(); + second.join(); + std::cout << "done\n" + << "iterations: " << j << "\n"; +} -- cgit