Reference documentation for deal.II version GIT relicensing-384-g4769914377 2024-04-13 09:00:02+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Classes | Functions | Variables
Threads::internal Namespace Reference

Classes

struct  maybe_make_ref
 
struct  maybe_make_ref< T & >
 
struct  return_value
 
struct  return_value< RT & >
 
struct  return_value< void >
 

Functions

template<typename RT , typename Function >
 DEAL_II_CXX20_REQUIRES ((std::invocable< Function > &&std::convertible_to< std::invoke_result_t< Function >, RT >)) void evaluate_and_set_promise(Function &function
 
template<typename Function >
void evaluate_and_set_promise (Function &function, std::promise< void > &promise)
 
void handle_std_exception (const std::exception &exc)
 
void handle_unknown_exception ()
 

Variables

std::promise< RT > & promise
 

Function Documentation

◆ DEAL_II_CXX20_REQUIRES()

template<typename RT , typename Function >
Threads::internal::DEAL_II_CXX20_REQUIRES ( (std::invocable< Function > && std::convertible_to< std::invoke_result_t< Function >, RT >)  ) &

Set the value of a std::promise object by evaluating the action.

Note
This class, function, or variable is a template, and it can only be instantiated if the following condition is true:
(std::invocable<Function> &&
std::convertible_to<std::invoke_result_t<Function>, RT>)
If your compiler supports the C++20 standard, then this constraint will be enforced by a C++20 requires clause.

◆ evaluate_and_set_promise()

template<typename Function >
void Threads::internal::evaluate_and_set_promise ( Function function,
std::promise< void > &  promise 
)

Set the value of a std::promise object by evaluating the action. This function is a specialization of the previous one for the case where the return type is void. Consequently, we can't set a value. But we do evaluate the function object and call std::promise::set_value() without argument.

Note
This class, function, or variable is a template, and it can only be instantiated if the following condition is true:
(std::invocable<Function>)
If your compiler supports the C++20 standard, then this constraint will be enforced by a C++20 requires clause.

Definition at line 446 of file thread_management.h.

◆ handle_std_exception()

void Threads::internal::handle_std_exception ( const std::exception &  exc)

Definition at line 34 of file thread_management.cc.

◆ handle_unknown_exception()

void Threads::internal::handle_unknown_exception ( )

Definition at line 74 of file thread_management.cc.

Variable Documentation

◆ promise

std::promise<RT>& Threads::internal::promise
Initial value:
{
promise.set_value(function())
std::promise< RT > & promise

Definition at line 429 of file thread_management.h.