summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-06-04 16:39:55 +0100
committerCarl Hetherington <cth@carlh.net>2014-06-04 16:39:55 +0100
commit10b4bf78da1dcdb96915506bd61a0ab1b2ea65ed (patch)
treeb8c02c90f4833574da71e3e6518a8d952a0bb1ca /src
parent4a74ca2cb973585122e84c21ff48ff4ff1ebd488 (diff)
Fix crash due to lack of signal disconnection.
Diffstat (limited to 'src')
-rw-r--r--src/lib/log.cc2
-rw-r--r--src/lib/log.h8
2 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/log.cc b/src/lib/log.cc
index 52dff2982..4de6bd874 100644
--- a/src/lib/log.cc
+++ b/src/lib/log.cc
@@ -39,7 +39,7 @@ int const Log::TYPE_TIMING = 0x8;
Log::Log ()
: _types (0)
{
- Config::instance()->Changed.connect (boost::bind (&Log::config_changed, this));
+ _config_connection = Config::instance()->Changed.connect (boost::bind (&Log::config_changed, this));
config_changed ();
}
diff --git a/src/lib/log.h b/src/lib/log.h
index 2ba273b44..94d30de4e 100644
--- a/src/lib/log.h
+++ b/src/lib/log.h
@@ -27,6 +27,7 @@
#include <string>
#include <boost/thread/mutex.hpp>
#include <boost/filesystem.hpp>
+#include <boost/signals2.hpp>
/** @class Log
* @brief A very simple logging class.
@@ -47,16 +48,15 @@ public:
void set_types (int types);
-protected:
- /** mutex to protect the log */
- boost::mutex _mutex;
-
private:
virtual void do_log (std::string m) = 0;
void config_changed ();
+ /** mutex to protect the log */
+ boost::mutex _mutex;
/** bit-field of log types which should be put into the log (others are ignored) */
int _types;
+ boost::signals2::scoped_connection _config_connection;
};
class FileLog : public Log