]> 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>
Fri, 9 Mar 2012 17:44:52 +0000 (17:44 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Fri, 9 Mar 2012 17:44:52 +0000 (17:44 +0000)
protocol/osc/server.cpp
protocol/util/AsyncEventServer.cpp

index b8361c418a324fb0ab1aa4842988dca9c7fc9600..3bdec7fcbcc528875b769d3146841e70cd9f0d43 100644 (file)
@@ -93,7 +93,14 @@ public:
        void stop()\r
        {\r
                connection_set_->erase(shared_from_this());\r
-               socket_->close();\r
+               try\r
+               {\r
+                       socket_->close();\r
+               }\r
+               catch(...)\r
+               {\r
+                       CASPAR_LOG_CURRENT_EXCEPTION();\r
+               }\r
                CASPAR_LOG(info) << print() << L" Disconnected.";\r
        }\r
                \r
@@ -194,32 +201,23 @@ public:
        }\r
 \r
        ~tcp_observer()\r
-       {                               \r
+       {               \r
                try\r
                {\r
                        acceptor_.close();\r
-\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
                        CASPAR_LOG_CURRENT_EXCEPTION();\r
                }\r
 \r
+               service_.post([=]\r
+               {\r
+                       auto connections = *connection_set_;\r
+                       BOOST_FOREACH(auto& connection, connections)\r
+                               connection->stop();                             \r
+               });\r
+\r
                thread_.join();\r
        }\r
        \r
index 8a8d45098678ffd94c36b332e631d506248b20f3..3821d4a735c27e64644603dce607ece4dc425efb 100644 (file)
@@ -87,7 +87,14 @@ public:
        void stop()\r
        {\r
                connection_set_->erase(shared_from_this());\r
-               socket_->close();\r
+               try\r
+               {\r
+                       socket_->close();\r
+               }\r
+               catch(...)\r
+               {\r
+                       CASPAR_LOG_CURRENT_EXCEPTION();\r
+               }\r
                CASPAR_LOG(info) << print() << L" Disconnected.";\r
        }\r
 \r
@@ -176,29 +183,20 @@ struct AsyncEventServer::implementation
        {\r
                try\r
                {\r
-                       acceptor_.close();\r
-\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
+                       acceptor_.close();                      \r
                }\r
                catch(...)\r
                {\r
                        CASPAR_LOG_CURRENT_EXCEPTION();\r
                }\r
 \r
+               service_.post([=]\r
+               {\r
+                       auto connections = *connection_set_;\r
+                       BOOST_FOREACH(auto& connection, connections)\r
+                               connection->stop();                             \r
+               });\r
+\r
                thread_.join();\r
        }\r
                \r