]> git.sesse.net Git - casparcg/commitdiff
executor: Throw on begin_invoke while stopped.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 23 Dec 2011 13:03:57 +0000 (13:03 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 23 Dec 2011 13:03:57 +0000 (13:03 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/trunk@1932 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

common/concurrency/executor.h

index c65bf760f8821cd771d91e69281a1d50c02d5722..05e838e346355c6fc3706a2162c591affa63b382 100644 (file)
@@ -22,6 +22,7 @@
 #pragma once\r
 \r
 #include "../exception/win32_exception.h"\r
+#include "../exception/exceptions.h"\r
 #include "../utility/string.h"\r
 #include "../utility/move_on_copy.h"\r
 #include "../log/log.h"\r
@@ -163,6 +164,9 @@ public:
        template<typename Func>\r
        auto begin_invoke(Func&& func, task_priority priority = normal_priority) -> boost::unique_future<decltype(func())> // noexcept\r
        {       \r
+               if(!is_running_)\r
+                       BOOST_THROW_EXCEPTION(invalid_operation() << msg_info("executor not running."));\r
+\r
                // Create a move on copy adaptor to avoid copying the functor into the queue, tbb::concurrent_queue does not support move semantics.\r
                auto task_adaptor = make_move_on_copy(create_task(func));\r
 \r