void stop()\r
{\r
connection_set_->erase(shared_from_this());\r
- socket_->shutdown(boost::asio::socket_base::shutdown_both);\r
socket_->close();\r
}\r
\r
{\r
service_.post([=]\r
{\r
- BOOST_FOREACH(auto& connection, *connection_set_)\r
- connection->on_next(e);\r
+ auto connections = *connection_set_;\r
+ BOOST_FOREACH(auto& connection, connections)\r
+ connection->stop();\r
});\r
} \r
private: \r
void stop()\r
{\r
connection_set_->erase(shared_from_this());\r
- socket_->shutdown(boost::asio::socket_base::shutdown_both);\r
socket_->close();\r
CASPAR_LOG(info) << print() << L" Disconnected.";\r
}\r
\r
~implementation()\r
{\r
- acceptor_.close();\r
+ try\r
+ {\r
+ acceptor_.close();\r
\r
- service_.post([=]\r
+ service_.post([=]\r
+ {\r
+ auto connections = *connection_set_;\r
+ BOOST_FOREACH(auto& connection, connections)\r
+ {\r
+ try\r
+ {\r
+ connection->stop();\r
+ }\r
+ catch(...)\r
+ {\r
+ CASPAR_LOG_CURRENT_EXCEPTION();\r
+ }\r
+ }\r
+ });\r
+ }\r
+ catch(...)\r
{\r
- BOOST_FOREACH(auto& connection, *connection_set_)\r
- connection->stop();\r
- });\r
+ CASPAR_LOG_CURRENT_EXCEPTION();\r
+ }\r
\r
thread_.join();\r
}\r
<configuration>\r
<paths>\r
<media-path>D:\casparcg\_media\</media-path>\r
- <log-path>./</log-path>\r
+ <log-path>D:\casparcg\_log\</log-path>\r
<data-path>D:\casparcg\_data\</data-path>\r
<template-path>D:\caspar\_templates\</template-path>\r
</paths>\r