From a3e566c4d3631076e29f3651554603184b6351a7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 17 May 2009 01:34:10 +0200 Subject: Gnulib durch boost ersetzt --- src/Common/LogManager.h | 48 +++++++++++++++++++----------------------------- 1 file changed, 19 insertions(+), 29 deletions(-) (limited to 'src/Common/LogManager.h') 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 #include -#include "glthread/lock.h" -#include "glthread/cond.h" +#include +#include 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 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 messageQueue; std::queue 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() { -- cgit v1.2.3