// Copyright (C) 2014 Vicente Botet // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include #if ! defined BOOST_NO_CXX11_DECLTYPE #define BOOST_RESULT_OF_USE_DECLTYPE #endif #define BOOST_THREAD_VERSION 4 #define BOOST_THREAD_PROVIDES_EXECUTORS //#define BOOST_THREAD_USES_LOG #define BOOST_THREAD_USES_LOG_THREAD_ID #define BOOST_THREAD_QUEUE_DEPRECATE_OLD #include #include #include #include #include #include boost::generic_executor_ref default_executor() { static boost::basic_thread_pool tp(4); return boost::generic_executor_ref(tp); } void p2() { std::cout << BOOST_CONTEXTOF << std::endl; boost::this_thread::sleep_for(boost::chrono::milliseconds(200)); std::cout << BOOST_CONTEXTOF << std::endl; } void p1() { std::cout << BOOST_CONTEXTOF << std::endl; boost::this_thread::sleep_for(boost::chrono::milliseconds(200)); default_executor().submit(&p2); boost::this_thread::sleep_for(boost::chrono::milliseconds(400)); std::cout << BOOST_CONTEXTOF << std::endl; } int main() { std::cout << BOOST_CONTEXTOF << std::endl; default_executor().submit(&p1); boost::this_thread::sleep_for(boost::chrono::seconds(5)); std::cout << BOOST_CONTEXTOF << std::endl; return 1; }