Go to the documentation of this file.
19 #ifndef LIBMESH_THREADS_NONE_H
20 #define LIBMESH_THREADS_NONE_H
24 #ifndef LIBMESH_SQUASH_HEADER_WARNING
25 # warning "This file is designed to be included through libmesh/threads.h"
28 #if !defined(LIBMESH_HAVE_TBB_API) && !defined(LIBMESH_HAVE_PTHREAD)
31 #define LIBMESH_TLS_TYPE(type) type
32 #define LIBMESH_TLS_REF(value) (value)
71 template <
typename Range,
typename Body>
85 template <
typename Range,
typename Body,
typename Partitioner>
99 template <
typename Range,
typename Body>
113 template <
typename Range,
typename Body,
typename Partitioner>
171 template <
typename T>
176 operator T & () {
return _val; }
185 #endif // !defined(LIBMESH_HAVE_TBB_API) && !defined(LIBMESH_HAVE_PTHREAD)
187 #endif // LIBMESH_SQUASH_HEADER_WARNING
189 #endif // LIBMESH_THREADS_NONE_H
Defines atomic operations which can only be executed on a single thread at a time.
Scheduler to manage threads.
void initialize(int=automatic)
The libMesh namespace provides an interface to certain functionality in the library.
task_scheduler_init(int=automatic)
void acquire(spin_mutex &)
Dummy "splitting object" used to distinguish splitting constructors from copy constructors.
The Partitioner class provides a uniform interface for partitioning algorithms.
scoped_lock(spin_mutex &)
NonConcurrentThread Thread
Use the non-concurrent placeholder.
void parallel_for(const Range &range, const Body &body)
Execute the provided function object in parallel on the specified range.
bool in_threads
A boolean which is true iff we are in a Threads:: function It may be useful to assert(!...
void parallel_reduce(const Range &range, Body &body)
Execute the provided reduction operation in parallel on the specified range.
void acquire(recursive_mutex &)
static const int automatic
Simple compatibility class for std::thread 'concurrent' execution.
scoped_lock(recursive_mutex &)
We use a class to turn Threads::in_threads on and off, to be exception-safe.