aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleak <leak@bitmx.net>2014-06-24 19:13:29 +0200
committerleak <leak@bitmx.net>2014-06-24 19:13:29 +0200
commit0a592dd9dbd34818deee472dd42d700b4746a27e (patch)
tree92b9fe24400c46e6ea2b62e3d9c8e5219cefc290
parenta20ac4c25bc25ddf8de1d9c5b810d332f5287d33 (diff)
Removed ACE dependencies from LogWorker
-rw-r--r--src/server/shared/Logging/Log.cpp2
-rw-r--r--src/server/shared/Logging/Log.h2
-rw-r--r--src/server/shared/Logging/LogWorker.cpp17
-rw-r--r--src/server/shared/Logging/LogWorker.h20
4 files changed, 12 insertions, 29 deletions
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp
index fd7aa84c0e9..68745046433 100644
--- a/src/server/shared/Logging/Log.cpp
+++ b/src/server/shared/Logging/Log.cpp
@@ -273,7 +273,7 @@ void Log::write(LogMessage* msg) const
msg->text.append("\n");
if (worker)
- worker->enqueue(new LogOperation(logger, msg));
+ worker->enqueue(*(new LogOperation(logger, msg)));
else
{
logger->write(*msg);
diff --git a/src/server/shared/Logging/Log.h b/src/server/shared/Logging/Log.h
index c3a47d14e9e..29ebdb3faa1 100644
--- a/src/server/shared/Logging/Log.h
+++ b/src/server/shared/Logging/Log.h
@@ -23,7 +23,7 @@
#include "Appender.h"
#include "Logger.h"
#include "LogWorker.h"
-
+#include <stdarg.h>
#include <unordered_map>
#include <string>
diff --git a/src/server/shared/Logging/LogWorker.cpp b/src/server/shared/Logging/LogWorker.cpp
index b0c82b614f4..cea4262032b 100644
--- a/src/server/shared/Logging/LogWorker.cpp
+++ b/src/server/shared/Logging/LogWorker.cpp
@@ -17,29 +17,22 @@
#include "LogWorker.h"
-LogWorker::LogWorker()
- : m_queue(HIGH_WATERMARK, LOW_WATERMARK)
-{
- ACE_Task_Base::activate(THR_NEW_LWP | THR_JOINABLE | THR_INHERIT_SCHED, 1);
-}
-
LogWorker::~LogWorker()
{
- m_queue.deactivate();
- wait();
+ m_queue.cancel();
}
-int LogWorker::enqueue(LogOperation* op)
+void LogWorker::enqueue(LogOperation& op)
{
- return m_queue.enqueue(op);
+ return m_queue.add(op);
}
int LogWorker::svc()
{
while (1)
{
- LogOperation* request;
- if (m_queue.dequeue(request) == -1)
+ LogOperation* request = nullptr;
+ if (!m_queue.next(*request))
break;
request->call();
diff --git a/src/server/shared/Logging/LogWorker.h b/src/server/shared/Logging/LogWorker.h
index 25a57842e08..84d8ba632a8 100644
--- a/src/server/shared/Logging/LogWorker.h
+++ b/src/server/shared/Logging/LogWorker.h
@@ -19,29 +19,19 @@
#define LOGWORKER_H
#include "LogOperation.h"
+#include "LockedQueue.h"
-#include <ace/Task.h>
-#include <ace/Activation_Queue.h>
-
-class LogWorker: protected ACE_Task_Base
+class LogWorker
{
public:
- LogWorker();
+ LogWorker() {};
~LogWorker();
- typedef ACE_Message_Queue_Ex<LogOperation, ACE_MT_SYNCH> LogMessageQueueType;
-
- enum
- {
- HIGH_WATERMARK = 8 * 1024 * 1024,
- LOW_WATERMARK = 8 * 1024 * 1024
- };
-
- int enqueue(LogOperation *op);
+ void enqueue(LogOperation& op);
private:
virtual int svc();
- LogMessageQueueType m_queue;
+ LockedQueue<LogOperation> m_queue;
};
#endif