- void rethrow () {
- boost::mutex::scoped_lock lm (_mutex);
- if (_exception) {
- boost::rethrow_exception (_exception);
- _exception = boost::exception_ptr ();
- }
- }
-
-protected:
-
- void store_current () {
- boost::mutex::scoped_lock lm (_mutex);
- _exception = boost::current_exception ();
- }
-
-private:
- boost::exception_ptr _exception;
- mutable boost::mutex _mutex;