-
+/**
+ * A namespace for the implementation of thread management in deal.II.
+ */
namespace Threads
{
/**
namespace internal
{
/**
+ * @internal
* If in a sub-thread an
* exception is thrown, it is not
* propagated to the main
void handle_std_exception (const std::exception &exc);
/**
+ * @internal
* Same as above, but the type of
* the exception is not derived
* from @p{std::exception}, so
void handle_unknown_exception ();
/**
+ * @internal
* The following function is used
* for internal bookkeeping of the
* number of existing threads. It
void register_thread ();
/**
+ * @internal
* The following function is used
* for internal bookkeeping of the
* number of existing threads. It
namespace internal
{
/**
+ * @internal
* A type that is used to
* distinguish argument lists of
* functions by enumeration.
namespace internal
{
/**
- * Given an arbitrary type RT,
+ * @internal
+ * Given an arbitrary type RT,
* store an element of it and grant
* access to it through functions
* get() and set(). There are
/**
+ * @internal
* Given an arbitrary type RT,
* store an element of it and grant
* access to it through functions
/**
+ * @internal
* Given an arbitrary type RT,
* store an element of it and grant
* access to it through functions
namespace internal
{
/**
+ * @internal
* Call arbitrary functions with
* return type RT. For each number
* of arguments to these functions,
/**
+ * @internal
* Call arbitrary functions with
* void return type. For each
* number of arguments to these
/**
+ * @internal
* Call an arbitrary function by
* dispatching to the functions in
* the Caller class based on the
/**
+ * @internal
* Call an arbitrary member
* function by dispatching to the
* functions in the Caller class
namespace internal
{
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments, and whether the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
};
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to member
* function based on the template
* arguments, and whether the
namespace internal
{
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments, and whether the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to non-member
* function based on the template
* arguments. This is the
/**
+ * @internal
* Construct a pointer to
* non-member function based on the
* template arguments. We do this
namespace internal
{
/**
+ * @internal
* Extract the Nth element of the
* type list and make it a
* reference.
};
/**
+ * @internal
* Specializations of this template
* declare a typedef to a tuple
* type that has the same basic
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Make a tuple type of all
* references out of the given
* tuple. Specialization for tuple
/**
+ * @internal
* Declare a typedef to a tuple
* type that has the same basic
* types as the template
namespace internal
{
/**
+ * @internal
* Base class describing a
* thread. This is the basic
* class abstracting the
# endif // defined(DEAL_II_USE_MT_POSIX)
/**
+ * @internal
* Class derived from
* @ref{thread_description_base}
* that also provides the
{
/**
+ * @internal
* Base class for the classes
* wrapping function pointers and
* arguments for non-member and
/**
+ * @internal
* Wrap the arguments to a
* non-member or static member
* function and provide an entry
/**
+ * @internal
* Wrap the arguments to a member
* function and provide an entry
* point for a new thread that
namespace internal
{
/**
+ * @internal
* General template declaration
* of a class that is used to
* encapsulate arguments to
/**
+ * @internal
* General template declaration
* of a class that is used to
* encapsulate arguments to
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with no arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 1 argument.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 2 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 3 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 4 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 5 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 6 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 7 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 8 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 9 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for member
* functions with 10 arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for
* functions with no arguments.
*/
namespace internal
{
/**
+ * @internal
* Encapsulator class for
* functions with 1 argument.
*/
namespace internal
{
/**
+ * @internal
* General template declaration
* of a class that is used to
* forward arguments to
class fun_forwarder;
/**
+ * @internal
* General template declaration
* of a class that is used to
* forward arguments to
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with no arguments.
*/
/**
+ * @internal
* Overload of the non-const spawn
* function for member functions
* with no arguments. This is the
}
/**
+ * @internal
* Overload of the spawn function
* for const member functions with
* no arguments. This is the
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 1 argument.
*/
/**
+ * @internal
* Overload of the non-const spawn
* function for member functions with
* 1 argument. This is the
}
/**
+ * @internal
* Overload of the spawn function for
* const member functions with 1
* argument. This is the
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 2
* arguments.
/**
+ * @internal
* Overload of the non-const spawn
* function for member functions
* with 2 arguments. This is the
}
/**
+ * @internal
* Overload of the spawn function
* for const member functions with
* 2 arguments. This is the version
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 3
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 4
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 5
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 6
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 7
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 8
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 9
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for member
* functions with 10
* arguments.
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with no arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 1 argument.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 2 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 3 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 4 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 5 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 6 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 7 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 8 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 9 arguments.
*/
namespace internal
{
/**
+ * @internal
* Forwarder class for functions
* with 10 arguments.
*/