From 4db8696889957191b462db53b621572ad6369f5f Mon Sep 17 00:00:00 2001 From: badaix Date: Wed, 12 Aug 2015 23:28:44 +0200 Subject: [PATCH] fixed crash during shutdown --- server/controlServer.cpp | 8 +++++++- server/controlServer.h | 1 + server/encoder/oggEncoder.cpp | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/server/controlServer.cpp b/server/controlServer.cpp index 1a0618f7..03f28e38 100644 --- a/server/controlServer.cpp +++ b/server/controlServer.cpp @@ -33,6 +33,11 @@ ControlServer::ControlServer(const ControlServerSettings& controlServerSettings) } +ControlServer::~ControlServer() +{ +} + + void ControlServer::send(const msg::BaseMessage* message) { std::unique_lock mlock(mutex_); @@ -160,9 +165,10 @@ void ControlServer::start() void ControlServer::stop() { - io_service_.stop(); acceptor_->cancel(); + io_service_.stop(); acceptThread_.join(); + pipeReader_->stop(); std::unique_lock mlock(mutex_); for (auto it = sessions_.begin(); it != sessions_.end(); ++it) (*it)->stop(); diff --git a/server/controlServer.h b/server/controlServer.h index 5480166a..71db0e2e 100644 --- a/server/controlServer.h +++ b/server/controlServer.h @@ -61,6 +61,7 @@ class ControlServer : public MessageReceiver, PipeListener { public: ControlServer(const ControlServerSettings& controlServerSettings); + virtual ~ControlServer(); void start(); void stop(); diff --git a/server/encoder/oggEncoder.cpp b/server/encoder/oggEncoder.cpp index cefbc67c..f5c59fc1 100644 --- a/server/encoder/oggEncoder.cpp +++ b/server/encoder/oggEncoder.cpp @@ -113,7 +113,7 @@ void OggEncoder::encode(const msg::PcmChunk* chunk) if (res > 0) { res /= (sampleFormat_.rate / 1000.); - logO << "res: " << res << "\n"; + // logO << "res: " << res << "\n"; lastGranulepos = os.granulepos; // make oggChunk smaller oggChunk->payload = (char*)realloc(oggChunk->payload, pos);