From 90c0504a4a15aa0f21743efc06a9e62f5a4185aa Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Wed, 21 Aug 2024 16:28:08 -0600 Subject: [PATCH] Add a test. --- tests/multithreading/task_result_06.cc | 53 ++++++++++++++++++++++ tests/multithreading/task_result_06.output | 4 ++ 2 files changed, 57 insertions(+) create mode 100644 tests/multithreading/task_result_06.cc create mode 100644 tests/multithreading/task_result_06.output diff --git a/tests/multithreading/task_result_06.cc b/tests/multithreading/task_result_06.cc new file mode 100644 index 0000000000..937b1eebaf --- /dev/null +++ b/tests/multithreading/task_result_06.cc @@ -0,0 +1,53 @@ +// ------------------------------------------------------------------------ +// +// SPDX-License-Identifier: LGPL-2.1-or-later +// Copyright (C) 2009 - 2024 by the deal.II authors +// +// This file is part of the deal.II library. +// +// Part of the source code is dual licensed under Apache-2.0 WITH +// LLVM-exception OR LGPL-2.1-or-later. Detailed license information +// governing the source code and code contributions can be found in +// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II. +// +// ------------------------------------------------------------------------ + + +// Test TaskResult::emplace_object(). + +#include + +#include "../tests.h" + + + +int +main() +{ + initlog(); + + { + // Create a background task that returns a value. Associate this + // background task with a TaskResult object. + Threads::TaskResult t = Threads::new_task([]() { + std::this_thread::sleep_for(std::chrono::seconds(1)); + return 42; + }); + + // Wait for that background task to finish, then get its + // value: + deallog << t.value() << std::endl; + + // Now set things to a different value, and output it: + t.emplace_object(43); + deallog << t.value() << std::endl; + } + + { + // Create an empty TaskResult object. Then set its value to + // something and check what that is: + Threads::TaskResult t; + t.emplace_object(44); + deallog << t.value() << std::endl; + } +} diff --git a/tests/multithreading/task_result_06.output b/tests/multithreading/task_result_06.output new file mode 100644 index 0000000000..4cb8cc1601 --- /dev/null +++ b/tests/multithreading/task_result_06.output @@ -0,0 +1,4 @@ + +DEAL::42 +DEAL::43 +DEAL::44 -- 2.39.5