summaryrefslogtreecommitdiff
path: root/libs/thread/test/sync/futures/shared_future/then_pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/thread/test/sync/futures/shared_future/then_pass.cpp')
-rw-r--r--libs/thread/test/sync/futures/shared_future/then_pass.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/libs/thread/test/sync/futures/shared_future/then_pass.cpp b/libs/thread/test/sync/futures/shared_future/then_pass.cpp
index 4739135bf..b7d95bc66 100644
--- a/libs/thread/test/sync/futures/shared_future/then_pass.cpp
+++ b/libs/thread/test/sync/futures/shared_future/then_pass.cpp
@@ -75,6 +75,30 @@ int main()
{
boost::shared_future<int> f1 = boost::async(boost::launch::async, &p1).share();
BOOST_TEST(f1.valid());
+ boost::future<int> f2 = f1.then(&p2);
+ boost::future<int> f3 = f1.then(&p2);
+ BOOST_TEST(f2.valid());
+ BOOST_TEST(f3.valid());
+ try
+ {
+ BOOST_TEST(f2.get()==2);
+ BOOST_TEST(f3.get()==2);
+ }
+ 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::shared_future<int> f1 = boost::async(boost::launch::async, &p1).share();
+ BOOST_TEST(f1.valid());
boost::future<void> f2 = f1.then(&p3);
BOOST_TEST(f2.valid());
try