summaryrefslogtreecommitdiff
path: root/libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp')
-rw-r--r--libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp b/libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp
index e17e912ce..b400074cd 100644
--- a/libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp
+++ b/libs/thread/test/sync/futures/future/async_deferred_then_pass.cpp
@@ -53,6 +53,29 @@ int main()
{
BOOST_THREAD_LOG << BOOST_THREAD_END_LOG;
{
+ try
+ {
+ boost::future<int> f1 = boost::async(boost::launch::deferred, &p1);
+ BOOST_TEST(f1.valid());
+ {
+ boost::future<int> f2 = f1.then(&p2);
+ BOOST_TEST(f2.valid());
+ }
+ BOOST_TEST(! f1.valid());
+ }
+ catch (std::exception& ex)
+ {
+ BOOST_THREAD_LOG << "ERRORRRRR "<<ex.what() << "" << BOOST_THREAD_END_LOG;
+ BOOST_TEST(false);
+ }
+ catch (...)
+ {
+ BOOST_THREAD_LOG << " ERRORRRRR exception thrown" << BOOST_THREAD_END_LOG;
+ BOOST_TEST(false);
+ }
+ }
+ BOOST_THREAD_LOG << BOOST_THREAD_END_LOG;
+ {
boost::future<int> f1 = boost::async(boost::launch::deferred, &p1);
BOOST_TEST(f1.valid());
boost::future<int> f2 = f1.then(&p2);