From 7b6e527f440cd7e6f8be2b07cee320ee6ca18786 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 29 Apr 2024 06:41:38 +0200 Subject: Adding upstream version 1.0.1. Signed-off-by: Daniel Baumann --- .../16 threads/subprojects/cmMod/CMakeLists.txt | 15 +++++++++++++++ .../cmake/16 threads/subprojects/cmMod/cmMod.cpp | 15 +++++++++++++++ .../cmake/16 threads/subprojects/cmMod/cmMod.hpp | 21 +++++++++++++++++++++ .../cmake/16 threads/subprojects/cmMod/main.cpp | 9 +++++++++ 4 files changed, 60 insertions(+) create mode 100644 test cases/cmake/16 threads/subprojects/cmMod/CMakeLists.txt create mode 100644 test cases/cmake/16 threads/subprojects/cmMod/cmMod.cpp create mode 100644 test cases/cmake/16 threads/subprojects/cmMod/cmMod.hpp create mode 100644 test cases/cmake/16 threads/subprojects/cmMod/main.cpp (limited to 'test cases/cmake/16 threads/subprojects/cmMod') diff --git a/test cases/cmake/16 threads/subprojects/cmMod/CMakeLists.txt b/test cases/cmake/16 threads/subprojects/cmMod/CMakeLists.txt new file mode 100644 index 0000000..4d61b0c --- /dev/null +++ b/test cases/cmake/16 threads/subprojects/cmMod/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.5) + +project(cmMod C CXX) +set (CMAKE_CXX_STANDARD 14) + +if(NOT USE_PTHREAD STREQUAL NOT_SET) + set(THREADS_PREFER_PTHREAD_FLAG ${USE_PTHREAD}) +endif() +find_package(Threads) + +add_library(cmModLib STATIC cmMod.cpp) +target_link_libraries(cmModLib PRIVATE Threads::Threads) + +add_library(cmModLib_shared SHARED cmMod.cpp) +target_link_libraries(cmModLib_shared PUBLIC Threads::Threads) diff --git a/test cases/cmake/16 threads/subprojects/cmMod/cmMod.cpp b/test cases/cmake/16 threads/subprojects/cmMod/cmMod.cpp new file mode 100644 index 0000000..f971eeb --- /dev/null +++ b/test cases/cmake/16 threads/subprojects/cmMod/cmMod.cpp @@ -0,0 +1,15 @@ +#include "cmMod.hpp" + +#include +#include + +using namespace std::chrono_literals; + +void CmMod::asyncIncrement() { + std::thread t1([this]() { + std::this_thread::sleep_for(100ms); + num += 1; + }); + + t1.join(); +} diff --git a/test cases/cmake/16 threads/subprojects/cmMod/cmMod.hpp b/test cases/cmake/16 threads/subprojects/cmMod/cmMod.hpp new file mode 100644 index 0000000..81c5ec8 --- /dev/null +++ b/test cases/cmake/16 threads/subprojects/cmMod/cmMod.hpp @@ -0,0 +1,21 @@ +#pragma once + +#if defined _WIN32 || defined __CYGWIN__ +#define DLL_PUBLIC __declspec(dllexport) +#else +#if defined __GNUC__ +#define DLL_PUBLIC __attribute__((visibility("default"))) +#else +#pragma message("Compiler does not support symbol visibility.") +#define DLL_PUBLIC +#endif +#endif + +class DLL_PUBLIC CmMod { +private: + int num = 0; + +public: + inline int getNum() const { return num; } + void asyncIncrement(); +}; diff --git a/test cases/cmake/16 threads/subprojects/cmMod/main.cpp b/test cases/cmake/16 threads/subprojects/cmMod/main.cpp new file mode 100644 index 0000000..67ee110 --- /dev/null +++ b/test cases/cmake/16 threads/subprojects/cmMod/main.cpp @@ -0,0 +1,9 @@ +#include "cmMod.hpp" + +#include + +int main() { + CmMod cc; + cc.asyncIncrement(); + return cc.getNum() == 1 ? EXIT_SUCCESS : EXIT_FAILURE; +} -- cgit v1.2.3