]> git.sesse.net Git - casparcg/commitdiff
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches...
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 20 Feb 2012 12:04:27 +0000 (12:04 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Mon, 20 Feb 2012 12:04:27 +0000 (12:04 +0000)
common/future.h

index 85a848cac96b1b4888b6bd8156c69904a808b8af..5909e2be970eb8e4c351c1ee63885f0e0e516329 100644 (file)
@@ -117,11 +117,7 @@ auto async(launch policy, F&& f) -> boost::unique_future<decltype(f())>
                auto callback_object_raw = callback_object.get();\r
                auto future_object               = boost::static_pointer_cast<future_object_t>(std::move(callback_object));\r
 \r
-               int dummy = 0;\r
-               future_object->set_wait_callback(std::function<void(int)>([callback_object_raw](int) mutable\r
-               {                                                               \r
-                       (*callback_object_raw)();\r
-               }), &dummy);\r
+               future_object->set_wait_callback(std::mem_fn(&detail::callback_object<result_type, F>::operator()), callback_object_raw);\r
                \r
                boost::unique_future<result_type> future;\r
 \r
@@ -137,7 +133,7 @@ auto async(launch policy, F&& f) -> boost::unique_future<decltype(f())>
 template<typename F>\r
 auto async(F&& f) -> boost::unique_future<decltype(f())>\r
 {      \r
-       return async(launch::async, std::forward<F>(f));\r
+       return async(launch::async | launch::deferred, std::forward<F>(f));\r
 }\r
 \r
 template<typename T>\r