\r
boost::unique_future<bool> send(const safe_ptr<core::read_frame>& frame)\r
{\r
- auto display_command = [=]\r
+ return executor_.begin_invoke([=]() -> bool\r
{\r
- // The executor queue now has room so we try to complete the pending send call\r
- send_completion_.try_or_fail(\r
- caspar_exception() << msg_info(narrow(print()) + " Future send not able to complete."));\r
-\r
try\r
{ \r
display_frame(frame); \r
{\r
CASPAR_LOG_CURRENT_EXCEPTION();\r
}\r
- };\r
-\r
- auto enqueue_command = [=]\r
- {\r
- return executor_.try_begin_invoke(display_command);\r
- };\r
\r
- if (enqueue_command())\r
- return wrap_as_future(true);\r
-\r
- send_completion_.set_task([=]\r
- {\r
- return enqueue_command() ? boost::optional<bool>(true) : boost::optional<bool>();\r
+ return true;\r
});\r
-\r
- return std::move(send_completion_.get_future());\r
}\r
\r
void display_frame(const safe_ptr<core::read_frame>& frame)\r