Construct a jss::joining_thread
object associated
with a new thread of execution.
template<typename Callable,typename Args...> explicit joining_thread(Callable func,Args... args);
func
and each element
of args
must be
MoveConstructible
Constructs a jss::joining_thread
instance,
and associates it with a newly-created thread of execution. Copies
or moves func
and
args
into internal
storage associated that persists for the lifetime of the new thread
of execution. Runs the supplied function func
on that new thread of execution by INVOKE(func
,args
).
For a newly-constructed jss::joining_thread
object
x
, x.get_id()!=id()
.
An exception of type std::system_error
if unable to start the new thread. Any exception thrown by copying
func
or args
into internal storage.
The invocation of the constructor happens-before the execution of the supplied function on the newly-created thread of execution.
#include <jss/joining_thread.hpp>