diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-01-26 18:36:30 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-01-26 18:36:30 (GMT) |
commit | 256f9df327d13447ec110bbaebe813b86e57a610 (patch) | |
tree | da58c29d58b3695406fc323ebc54483c0978d536 /Swiften/Network/BoostConnectionServer.cpp | |
parent | c27c75917aea053baaa884638a3c056666a05602 (diff) | |
download | swift-contrib-256f9df327d13447ec110bbaebe813b86e57a610.zip swift-contrib-256f9df327d13447ec110bbaebe813b86e57a610.tar.bz2 |
Make boost io_service a shared object.
This should avoid problems when destroying an event loop containing
timer or network events, after the network factory (and io_service
object) has disappeared (i.e. at shutdown).
Diffstat (limited to 'Swiften/Network/BoostConnectionServer.cpp')
-rw-r--r-- | Swiften/Network/BoostConnectionServer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Swiften/Network/BoostConnectionServer.cpp b/Swiften/Network/BoostConnectionServer.cpp index 839c990..4c6403c 100644 --- a/Swiften/Network/BoostConnectionServer.cpp +++ b/Swiften/Network/BoostConnectionServer.cpp @@ -13,7 +13,7 @@ namespace Swift { -BoostConnectionServer::BoostConnectionServer(int port, boost::asio::io_service* ioService, EventLoop* eventLoop) : port_(port), ioService_(ioService), eventLoop(eventLoop), acceptor_(NULL) { +BoostConnectionServer::BoostConnectionServer(int port, boost::shared_ptr<boost::asio::io_service> ioService, EventLoop* eventLoop) : port_(port), ioService_(ioService), eventLoop(eventLoop), acceptor_(NULL) { } @@ -50,7 +50,7 @@ void BoostConnectionServer::stop(boost::optional<Error> e) { } void BoostConnectionServer::acceptNextConnection() { - BoostConnection::ref newConnection(BoostConnection::create(&acceptor_->io_service(), eventLoop)); + BoostConnection::ref newConnection(BoostConnection::create(ioService_, eventLoop)); acceptor_->async_accept(newConnection->getSocket(), boost::bind(&BoostConnectionServer::handleAccept, shared_from_this(), newConnection, boost::asio::placeholders::error)); } |