diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-08-26 22:12:16 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-08-26 22:12:16 +0100 |
| commit | 1ad291db7e847fbb71e5bd9f2f81db6bfb2a022e (patch) | |
| tree | 08a2c0e17e063b1680985c0df8d5472da670fa45 /src/lib/exceptions.h | |
| parent | 6b62e9c77b2a45fd1d7084626f2bb2949e832e5f (diff) | |
Separate ExceptionStore.
Diffstat (limited to 'src/lib/exceptions.h')
| -rw-r--r-- | src/lib/exceptions.h | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/src/lib/exceptions.h b/src/lib/exceptions.h index 12342b304..7240611ee 100644 --- a/src/lib/exceptions.h +++ b/src/lib/exceptions.h @@ -27,9 +27,7 @@ extern "C" { #include <libavutil/pixfmt.h> } -#include <boost/exception/all.hpp> #include <boost/filesystem.hpp> -#include <boost/thread/mutex.hpp> #include <stdexcept> #include <cstring> @@ -265,47 +263,4 @@ public: ProgrammingError (std::string file, int line); }; -/** @class ExceptionStore - * @brief A parent class for classes which have a need to catch and - * re-throw exceptions. - * - * This is intended for classes which run their own thread; they should do - * something like - * - * void my_thread () - * try { - * // do things which might throw exceptions - * } catch (...) { - * store_current (); - * } - * - * and then in another thread call rethrow(). If any - * exception was thrown by my_thread it will be stored by - * store_current() and then rethrow() will re-throw it where - * it can be handled. - */ -class ExceptionStore -{ -public: - void rethrow () { - boost::mutex::scoped_lock lm (_mutex); - if (_exception) { - boost::exception_ptr tmp = _exception; - _exception = boost::exception_ptr (); - boost::rethrow_exception (tmp); - } - } - -protected: - - void store_current () { - boost::mutex::scoped_lock lm (_mutex); - _exception = boost::current_exception (); - } - -private: - boost::exception_ptr _exception; - mutable boost::mutex _mutex; -}; - #endif |
