diff --git a/example/future_fallback_to.cpp b/example/future_fallback_to.cpp index 28accac6..6b0b41ee 100644 --- a/example/future_fallback_to.cpp +++ b/example/future_fallback_to.cpp @@ -31,11 +31,17 @@ int main() { BOOST_THREAD_LOG << " f1 = boost::async(boost::launch::async, &p1); + //boost::future f1 = boost::async(boost::launch::async, &p1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + boost::future f1 = boost::async(&p1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; boost::future f2 = f1.fallback_to(-1); - assert(f2.get()==1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + BOOST_ASSERT(f2.get()==1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; } catch (std::exception& ex) { @@ -49,11 +55,16 @@ int main() } } { + for (int i=0; i< 100; i++) try { + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; boost::future f1 = boost::async(boost::launch::async, &p1_ex); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; boost::future f2 = f1.fallback_to(-1); - assert(f2.get()==-1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + BOOST_ASSERT(f2.get()==-1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; } catch (std::exception& ex) { diff --git a/example/future_then.cpp b/example/future_then.cpp index 4cdcf999..c95281a1 100644 --- a/example/future_then.cpp +++ b/example/future_then.cpp @@ -21,7 +21,7 @@ int p1() int p2(boost::future f) { - BOOST_THREAD_LOG << " f) } int p2s(boost::shared_future f) { - BOOST_THREAD_LOG << " f) BOOST_THREAD_LOG << " ERRORRRRR exception thrown" << BOOST_THREAD_END_LOG; BOOST_ASSERT(false); } - BOOST_THREAD_LOG << "P2>" << BOOST_THREAD_END_LOG; + BOOST_THREAD_LOG << "P2S>" << BOOST_THREAD_END_LOG; } int main() { BOOST_THREAD_LOG << " f1 = boost::async(boost::launch::async, &p1); - boost::future f2 = f1.then(&p2); - (void)f2.get(); - } - catch (std::exception& ex) - { - BOOST_THREAD_LOG << "ERRORRRRR "< f1 = boost::async(boost::launch::async, &p1); + boost::future f1 = boost::async(&p1); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + boost::future f2 = f1.then(&p2); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + (void)f2.get(); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + } + catch (std::exception& ex) + { + BOOST_THREAD_LOG << "ERRORRRRR "< f1 = boost::async(boost::launch::async, &p1).share(); - boost::future f2 = f1.then(&p2s); - (void)f2.get(); - } - catch (std::exception& ex) - { - BOOST_THREAD_LOG << "ERRORRRRR "< f1 = boost::async(boost::launch::async, &p1).share(); + boost::shared_future f1 = boost::async(&p1).share(); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + boost::future f2 = f1.then(&p2s); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + (void)f2.get(); + BOOST_THREAD_LOG << "" << BOOST_THREAD_END_LOG; + } + catch (std::exception& ex) + { + BOOST_THREAD_LOG << "ERRORRRRR "<" << BOOST_THREAD_END_LOG; return 0; diff --git a/example/future_unwrap.cpp b/example/future_unwrap.cpp index 78e146c6..288252a6 100644 --- a/example/future_unwrap.cpp +++ b/example/future_unwrap.cpp @@ -30,6 +30,7 @@ boost::future p2() int main() { BOOST_THREAD_LOG << " > outer_future = boost::async(boost::launch::async, &p2); diff --git a/example/lambda_future.cpp b/example/lambda_future.cpp index b6a3a55d..198c52e8 100644 --- a/example/lambda_future.cpp +++ b/example/lambda_future.cpp @@ -24,6 +24,7 @@ int main() { BOOST_THREAD_LOG << " compute(int x) //if (x < 0) return boost::make_ready_future(boost::make_exception_ptr(std::logic_error("Error"))); if (x < 0) return boost::make_ready_future(std::logic_error("Error")); //boost::future f1 = boost::async([]() { return x+1; }); - boost::future f1 = boost::async(boost::launch::async, p1); + //boost::future f1 = boost::async(boost::launch::async, &p1); + boost::future f1 = boost::async(p1); return boost::move(f1); } boost::shared_future shared_compute(int x) @@ -43,30 +44,48 @@ boost::shared_future shared_compute(int x) if (x == 0) return boost::make_ready_future(0).share(); if (x < 0) return boost::make_ready_future(std::logic_error("Error")).share(); //boost::future f1 = boost::async([]() { return x+1; }); - boost::shared_future f1 = boost::async(p1).share(); - return boost::move(f1); + boost::shared_future f1 = boost::async(&p1).share(); + return f1; } int main() { + for (int i=0; i< 10; i++) + try + { #if defined BOOST_THREAD_USES_MOVE { + std::cout << __FILE__ << " "<< __LINE__ << std::endl; boost::future f = void_compute(); f.get(); } #endif { - boost::future f = compute(2); - std::cout << f.get() << std::endl; - } - { + std::cout << __FILE__ << " "<< __LINE__ << std::endl; boost::future f = compute(0); std::cout << f.get() << std::endl; } { - boost::shared_future f = shared_compute(2); + std::cout << __FILE__ << " "<< __LINE__ << std::endl; + boost::future f = compute(0); std::cout << f.get() << std::endl; } + { + std::cout << __FILE__ << " "<< __LINE__ << std::endl; + boost::shared_future f = shared_compute(0); + std::cout << f.get() << std::endl; + } + } + catch (std::exception& ex) + { + std::cout << "ERRORRRRR "<