From abee0fb56095633889ffe8dce9e04502d5566518 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 28 Feb 2021 13:19:23 +0100 Subject: Added x86_64 tests (based on box86) --- tests/test10.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/test10.cpp (limited to 'tests/test10.cpp') diff --git a/tests/test10.cpp b/tests/test10.cpp new file mode 100644 index 00000000..f3c61316 --- /dev/null +++ b/tests/test10.cpp @@ -0,0 +1,27 @@ +// using atomic as a lock +#include // std::cout +#include // std::atomic +#include // std::thread +#include // std::vector +#include // std::stringstream + +std::atomic lock_stream[10]; +std::stringstream stream; + +void append_number(int x) { + while (lock_stream[x].load()) {} + stream << "thread #" << x << '\n'; + if (x != 9) lock_stream[x + 1].store(false); +} + +int main () +{ + std::vector threads; + for (int i = 0; i < 10; ++i) lock_stream[i].store(true); + for (int i=0; i<10; ++i) threads.push_back(std::thread(append_number,i)); + lock_stream[0].store(false); + for (auto& th : threads) th.join(); + + std::cout << stream.str(); + return 0; +} -- cgit 1.4.1