summaryrefslogtreecommitdiffstats
path: root/src/Common/LogManager.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-05-17 01:34:10 +0200
committerMatthias Schiffer <matthias@gamezock.de>2009-05-17 01:34:10 +0200
commita3e566c4d3631076e29f3651554603184b6351a7 (patch)
tree71effee59fd4364174f7a845204f946dbc18ff2a /src/Common/LogManager.h
parentc8d469cc3de8ef2fb95f7b47355ebf5318a4c22f (diff)
downloadmad-a3e566c4d3631076e29f3651554603184b6351a7.tar
mad-a3e566c4d3631076e29f3651554603184b6351a7.zip
Gnulib durch boost ersetzt
Diffstat (limited to 'src/Common/LogManager.h')
-rw-r--r--src/Common/LogManager.h48
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() {