diff options
Diffstat (limited to 'Swiften/Network/BoostConnectionServer.cpp')
| -rw-r--r-- | Swiften/Network/BoostConnectionServer.cpp | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/Swiften/Network/BoostConnectionServer.cpp b/Swiften/Network/BoostConnectionServer.cpp index 596761a..97c1316 100644 --- a/Swiften/Network/BoostConnectionServer.cpp +++ b/Swiften/Network/BoostConnectionServer.cpp @@ -21,10 +21,10 @@ void BoostConnectionServer::start() {  	}  	catch (const boost::system::system_error& e) {  		if (e.code() == boost::asio::error::address_in_use) { -			onStopped(Conflict); +			MainEventLoop::postEvent(boost::bind(boost::ref(onStopped), Conflict), shared_from_this());  		}  		else { -			onStopped(UnknownError); +			MainEventLoop::postEvent(boost::bind(boost::ref(onStopped), UnknownError), shared_from_this());  		}  	}  } @@ -39,7 +39,11 @@ void BoostConnectionServer::stop(boost::optional<Error> e) {  		acceptor_->close();  		acceptor_ = NULL;  	} -	onStopped(e); +	MainEventLoop::postEvent(boost::bind(boost::ref(onStopped), e), shared_from_this()); +} + +void BoostConnectionServer::cancelAllEvents() { +	MainEventLoop::removeEventsFromOwner(shared_from_this());  }  void BoostConnectionServer::acceptNextConnection() {  | 
 Swift