From: Wolfgang Bangerth Date: Wed, 21 Aug 2024 22:28:08 +0000 (-0600) Subject: Add a test. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=90c0504a4a15aa0f21743efc06a9e62f5a4185aa;p=dealii.git Add a test. --- 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