Fix hang in client_server tests.
authorCarl Hetherington <cth@carlh.net>
Mon, 29 May 2017 22:04:44 +0000 (23:04 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 29 May 2017 22:04:44 +0000 (23:04 +0100)
src/lib/server.cc
src/lib/server.h
test/client_server_test.cc

index 1fb3d7d471863a2c3e81ec3c65480c131d2ada47..722b1c81130bde8a81856526c3ad01c357153f3e 100644 (file)
@@ -40,7 +40,7 @@ Server::~Server ()
        }
 
        _acceptor.close ();
-       _io_service.stop ();
+       stop ();
 }
 
 void
@@ -74,3 +74,9 @@ Server::handle_accept (shared_ptr<Socket> socket, boost::system::error_code cons
        handle (socket);
        start_accept ();
 }
+
+void
+Server::stop ()
+{
+       _io_service.stop ();
+}
index a72d360261123641f5e21763c18bd3dd552482af..747c516a2ba0a5df685f42177b8c16537643cf8a 100644 (file)
@@ -35,6 +35,7 @@ public:
        virtual ~Server ();
 
        virtual void run ();
+       void stop ();
 
 protected:
        boost::mutex _mutex;
index f84a0cb58ae1210b975bc11821453b752154c2d5..5e4c2540e7b2fa3b5382cfa8571756d484c2b1c8 100644 (file)
@@ -135,9 +135,9 @@ BOOST_AUTO_TEST_CASE (client_server_test_rgb)
                delete *i;
        }
 
+       server->stop ();
        server_thread->join ();
        delete server_thread;
-
        delete server;
 }
 
@@ -310,8 +310,8 @@ BOOST_AUTO_TEST_CASE (client_server_test_j2k)
                delete *i;
        }
 
+       server->stop ();
        server_thread->join ();
        delete server_thread;
-
        delete server;
 }