Lumiera  0.pre.03
»edit your freedom«
Thread Class Reference

#include "lib/thread.hpp"

Description

A thin convenience wrapper to simplify thread-handling.

The implementation is backed by the C++ standard library. Using this wrapper...

  • removes the need to join() threads, catches and ignores exceptions.
  • allows to bind to various kinds of functions including member functions The new thread starts immediately within the ctor; after returning, the new thread has already copied the arguments and indeed actively started to run.
    Warning
    The destructor waits for a short grace period of 20ms, but calls std::terminate afterwards, should the thread still be active then.

Definition at line 648 of file thread.hpp.

Additional Inherited Members

- Public Member Functions inherited from ThreadLifecycle< thread::PolicyLaunchOnly >
 ThreadLifecycle (Launch launcher)
 Primary constructor: Launch the new thread with flexible configuration. More...
 
 ThreadLifecycle (string const &threadID, FUN &&threadFunction, ARGS &&...args)
 Create a new thread to execute the given operation. More...
 
 ThreadLifecycle (void(SUB::*memFun)(ARGS...), ARGS ...args)
 Special variant to bind a subclass member function as thread operation. More...
 
 operator bool () const
 Is this thread »active« and thus tied to OS resources? More...
 
- Static Public Member Functions inherited from ThreadLifecycle< thread::PolicyLaunchOnly >
static auto buildInvocation (W &wrapper, tuple< INVO... > &&invocation)
 Build the invocation tuple, using #invokeThreadFunction to delegate to the user-provided functor and arguments.
 
static auto buildLauncher (INVO &&...args)
 Build a λ actually to launch the given thread operation later, after the thread-wrapper-object is fully initialised. More...
 
- Protected Member Functions inherited from ThreadLifecycle< thread::PolicyLaunchOnly >
 ThreadLifecycle ()
 derived classes may create a disabled thread
 
- Protected Member Functions inherited from PolicyLaunchOnly< ThreadWrapper, void >
void handle_after_thread ()
 
void handle_loose_thread ()
 
void perform_thread_function (FUN &&callable, ARGS &&...args)
 
- Protected Member Functions inherited from ThreadWrapper
 ThreadWrapper ()
 
 ThreadWrapper (string const &threadID)
 
void detach_thread_from_wrapper ()
 allow to detach explicitly — independent from thread-function's state. More...
 
void handle_after_thread ()
 called immediately before end of thread
 
void handle_begin_thread ()
 called immediately at start of thread
 
void handle_loose_thread ()
 called when destroying wrapper on still running thread
 
bool invokedWithinThread () const
 detect if the currently executing code runs within this thread More...
 
bool isLive () const
 
template<class... INVO>
void launchThread (tuple< INVO... > &&invocation)
 
void markThreadEnd ()
 
void markThreadStart ()
 
void setThreadName ()
 
void waitGracePeriod () noexcept
 
- Protected Member Functions inherited from MoveOnly
 MoveOnly (MoveOnly &&)=default
 
 MoveOnly (MoveOnly const &)=delete
 
MoveOnlyoperator= (MoveOnly &&)=delete
 
MoveOnlyoperator= (MoveOnly const &)=delete
 
- Static Protected Member Functions inherited from ThreadWrapper
static string decorate_with_global_count (string const &)
 Helper to create a suffix to the thread-ID with running count.
 
- Protected Attributes inherited from ThreadWrapper
const string threadID_
 
std::thread threadImpl_
 
+ Inheritance diagram for Thread:
+ Collaboration diagram for Thread:

The documentation for this class was generated from the following file: