changed a lot of thread locking code in the server, rooms are working with ISL now

This commit is contained in:
Max-Wilhelm Bruker
2012-03-17 16:09:00 +01:00
parent 572e4eaafa
commit c23af44749
16 changed files with 449 additions and 221 deletions

View File

@@ -8,8 +8,17 @@
# include <sys/socket.h>
#endif
ServerLogger::ServerLogger(const QString &logFileName, QObject *parent)
ServerLogger::ServerLogger(QObject *parent)
: QObject(parent), flushRunning(false)
{
}
ServerLogger::~ServerLogger()
{
flushBuffer();
}
void ServerLogger::startLog(const QString &logFileName)
{
if (!logFileName.isEmpty()) {
logFile = new QFile("server.log", this);
@@ -26,11 +35,6 @@ ServerLogger::ServerLogger(const QString &logFileName, QObject *parent)
connect(this, SIGNAL(sigFlushBuffer()), this, SLOT(flushBuffer()), Qt::QueuedConnection);
}
ServerLogger::~ServerLogger()
{
flushBuffer();
}
void ServerLogger::logMessage(QString message, void *caller)
{
if (!logFile)
@@ -98,34 +102,3 @@ void ServerLogger::handleSigHup()
QFile *ServerLogger::logFile;
int ServerLogger::sigHupFD[2];
ServerLoggerThread::ServerLoggerThread(const QString &_fileName, QObject *parent)
: QThread(parent), fileName(_fileName)
{
}
ServerLoggerThread::~ServerLoggerThread()
{
quit();
wait();
}
void ServerLoggerThread::run()
{
logger = new ServerLogger(fileName);
usleep(100);
initWaitCondition.wakeAll();
exec();
delete logger;
}
void ServerLoggerThread::waitForInit()
{
QMutex mutex;
mutex.lock();
initWaitCondition.wait(&mutex);
mutex.unlock();
}