Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r52520 - sandbox/task/boost/task
From: oliver.kowalke_at_[hidden]
Date: 2009-04-20 17:23:10


Author: olli
Date: 2009-04-20 17:23:09 EDT (Mon, 20 Apr 2009)
New Revision: 52520
URL: http://svn.boost.org/trac/boost/changeset/52520

Log:
* broken_task thrown in task::get()

Text files modified:
   sandbox/task/boost/task/exceptions.hpp | 8 --------
   sandbox/task/boost/task/handle.hpp | 15 +++++++++++++--
   2 files changed, 13 insertions(+), 10 deletions(-)

Modified: sandbox/task/boost/task/exceptions.hpp
==============================================================================
--- sandbox/task/boost/task/exceptions.hpp (original)
+++ sandbox/task/boost/task/exceptions.hpp 2009-04-20 17:23:09 EDT (Mon, 20 Apr 2009)
@@ -44,14 +44,6 @@
         {}
 };
 
-class task_already_executed : public std::logic_error
-{
-public:
- task_already_executed()
- : std::logic_error("task already executed")
- {}
-};
-
 class broken_task : public std::logic_error
 {
 public:

Modified: sandbox/task/boost/task/handle.hpp
==============================================================================
--- sandbox/task/boost/task/handle.hpp (original)
+++ sandbox/task/boost/task/handle.hpp 2009-04-20 17:23:09 EDT (Mon, 20 Apr 2009)
@@ -12,6 +12,7 @@
 
 #include <boost/task/detail/interrupter.hpp>
 #include <boost/task/future.hpp>
+#include <boost/task/exceptions.hpp>
 
 namespace boost { namespace task
 {
@@ -74,7 +75,12 @@
         { return intr_.interruption_requested(); }
 
         R get()
- { return fut_.get(); }
+ {
+ try
+ { return fut_.get(); }
+ catch ( broken_promise const&)
+ { throw broken_task(); }
+ }
 
         bool is_ready() const
         { return fut_.is_ready(); }
@@ -158,7 +164,12 @@
         { return intr_.interruption_requested(); }
 
         void get()
- { fut_.get(); }
+ {
+ try
+ { fut_.get(); }
+ catch ( broken_promise const&)
+ { throw broken_task(); }
+ }
 
         bool is_ready() const
         { return fut_.is_ready(); }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk