diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-05-17 01:34:10 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-05-17 01:34:10 +0200 |
commit | a3e566c4d3631076e29f3651554603184b6351a7 (patch) | |
tree | 71effee59fd4364174f7a845204f946dbc18ff2a /src/Common/LogManager.h | |
parent | c8d469cc3de8ef2fb95f7b47355ebf5318a4c22f (diff) | |
download | mad-a3e566c4d3631076e29f3651554603184b6351a7.tar mad-a3e566c4d3631076e29f3651554603184b6351a7.zip |
Gnulib durch boost ersetzt
Diffstat (limited to 'src/Common/LogManager.h')
-rw-r--r-- | src/Common/LogManager.h | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/src/Common/LogManager.h b/src/Common/LogManager.h index 1e10e0b..98bb6f7 100644 --- a/src/Common/LogManager.h +++ b/src/Common/LogManager.h @@ -29,8 +29,8 @@ #include <queue> #include <set> -#include "glthread/lock.h" -#include "glthread/cond.h" +#include <boost/thread/condition_variable.hpp> +#include <boost/thread/mutex.hpp> namespace Mad { @@ -66,7 +66,7 @@ class LogManager : public Configurable { private: // For long messages, writing to cerr is not atomic // -> lock cerr to prevent mixing messages up - gl_lock_t cerrLock; + boost::mutex cerrLock; protected: virtual void logMessage(MessageCategory category _UNUSED_PARAMETER_, MessageLevel level, time_t timestamp _UNUSED_PARAMETER_, const std::string &message); @@ -87,65 +87,55 @@ class LogManager : public Configurable { std::set<RemoteLogger*> remoteLoggers; bool configured, running; - gl_lock_t lock; - gl_cond_t queueCond; + boost::mutex queueLock; + boost::condition_variable queueCond; - gl_lock_t loggerLock; - gl_lock_t remoteLoggerLock; + boost::mutex loggerLock; + boost::mutex remoteLoggerLock; std::queue<Message> messageQueue; std::queue<RemoteMessage> remoteMessageQueue; void loggerThread(); void stopLoggerThread() { - gl_lock_lock(lock); + queueLock.lock(); running = false; - gl_cond_signal(queueCond); - gl_lock_unlock(lock); + queueLock.unlock(); + queueCond.notify_one(); } - LogManager() : configured(false), running(false) { - gl_lock_init(lock); - gl_lock_init(loggerLock); - gl_lock_init(remoteLoggerLock); - } + LogManager() : configured(false), running(false) {} protected: virtual bool handleConfigEntry(const ConfigEntry &entry, bool handled); virtual void configFinished(); public: - ~LogManager() { - gl_lock_destroy(remoteLoggerLock); - gl_lock_destroy(loggerLock); - gl_lock_destroy(lock); - } - void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message); void log(MessageCategory category, MessageLevel level, time_t timestamp, const std::string &message, const std::string &source); void registerLogger(Logger *logger) { - gl_lock_lock(loggerLock); + loggerLock.lock(); loggers.insert(logger); - gl_lock_unlock(loggerLock); + loggerLock.unlock(); } void unregisterLogger(Logger *logger) { - gl_lock_lock(loggerLock); + loggerLock.lock(); loggers.erase(logger); - gl_lock_unlock(loggerLock); + loggerLock.unlock(); } void registerLogger(RemoteLogger *logger) { - gl_lock_lock(remoteLoggerLock); + remoteLoggerLock.lock(); remoteLoggers.insert(logger); - gl_lock_unlock(remoteLoggerLock); + remoteLoggerLock.unlock(); } void unregisterLogger(RemoteLogger *logger) { - gl_lock_lock(remoteLoggerLock); + remoteLoggerLock.lock(); remoteLoggers.erase(logger); - gl_lock_unlock(remoteLoggerLock); + remoteLoggerLock.unlock(); } static LogManager *get() { |