1 #ifndef SILICIUM_BOOST_THREADING_HPP
2 #define SILICIUM_BOOST_THREADING_HPP
5 #include <boost/thread/mutex.hpp>
6 #include <boost/thread/condition_variable.hpp>
7 #include <boost/thread/future.hpp>
13 #if SILICIUM_HAS_EXCEPTIONS
17 typedef boost::unique_future<T> type;
22 typedef boost::promise<T> type;
24 template <
class Result>
27 typedef boost::packaged_task<Result
28 #ifdef BOOST_THREAD_PROVIDES_SIGNATURE_PACKAGED_TASK
37 #if (BOOST_VERSION >= 105000) && SILICIUM_HAS_EXCEPTIONS
38 template <
class Action,
class ...Args>
39 static auto launch_async(Action &&action, Args &&...args) -> boost::unique_future<decltype(action(std::forward<Args>(args)...))>
41 return boost::async(boost::launch::async, std::forward<Action>(action), std::forward<Args>(args)...);
boost::mutex mutex
Definition: boost_threading.hpp:34
Definition: absolute_path.hpp:19
boost::condition_variable condition_variable
Definition: boost_threading.hpp:35
Definition: boost_threading.hpp:11
boost::unique_lock< boost::mutex > unique_lock
Definition: boost_threading.hpp:36