- bugfix, threaded logging was NOT ever enabled because of a timing bug. Now threaded logging is enabled by default.

- Updated debug UI view to show threaded debug buffer count
This commit is contained in:
Mark Vejvoda
2010-12-25 09:15:49 +00:00
parent da1adab808
commit d997e2af5d
6 changed files with 72 additions and 37 deletions

View File

@@ -217,7 +217,7 @@ void LogFileThread::execute() {
try {
for(;this->getQuitStatus() == false;) {
if(difftime(time(NULL),lastSaveToDisk) >= 3) {
if(difftime(time(NULL),lastSaveToDisk) >= 5) {
lastSaveToDisk = time(NULL);
saveToDisk();
}
@@ -244,9 +244,16 @@ void LogFileThread::execute() {
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d] LogFile thread is exiting\n",__FILE__,__FUNCTION__,__LINE__);
}
std::size_t LogFileThread::getLogEntryBufferCount() {
MutexSafeWrapper safeMutex(&mutexLogList);
std::size_t logCount = logList.size();
safeMutex.ReleaseLock();
return logCount;
}
void LogFileThread::saveToDisk() {
MutexSafeWrapper safeMutex(&mutexLogList);
unsigned int logCount = logList.size();
std::size_t logCount = logList.size();
if(logCount > 0) {
vector<LogFileEntry> tempLogList = logList;
safeMutex.ReleaseLock(true);

View File

@@ -61,6 +61,18 @@ static void *myrealloc(void *ptr, size_t size)
return malloc(size);
}
bool SystemFlags::getThreadedLoggerRunning() {
return (threadLogger != NULL && threadLogger->getRunningStatus() == true);
}
std::size_t SystemFlags::getLogEntryBufferCount() {
std::size_t ret = 0;
if(threadLogger != NULL) {
ret = threadLogger->getLogEntryBufferCount();
}
return ret;
}
size_t SystemFlags::httpWriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data)
{
size_t realsize = size * nmemb;
@@ -159,6 +171,8 @@ CURL *SystemFlags::initHTTP() {
}
void SystemFlags::init(bool haveSpecialOutputCommandLineOption) {
//printf("SystemFlags::init CALLED, SystemFlags::debugLogFileList.size() = %d\n",SystemFlags::debugLogFileList.size());
SystemFlags::haveSpecialOutputCommandLineOption = haveSpecialOutputCommandLineOption;
if(SystemFlags::debugLogFileList.size() == 0) {
SystemFlags::debugLogFileList[SystemFlags::debugSystem] = SystemFlags::SystemFlagsType(SystemFlags::debugSystem);
@@ -168,13 +182,14 @@ void SystemFlags::init(bool haveSpecialOutputCommandLineOption) {
SystemFlags::debugLogFileList[SystemFlags::debugUnitCommands] = SystemFlags::SystemFlagsType(SystemFlags::debugUnitCommands);
SystemFlags::debugLogFileList[SystemFlags::debugLUA] = SystemFlags::SystemFlagsType(SystemFlags::debugLUA);
SystemFlags::debugLogFileList[SystemFlags::debugError] = SystemFlags::SystemFlagsType(SystemFlags::debugError);
if(SystemFlags::ENABLE_THREADED_LOGGING) {
threadLogger = new LogFileThread();
threadLogger->start();
}
}
if(threadLogger == NULL) {
threadLogger = new LogFileThread();
threadLogger->start();
sleep(5);
}
SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(curl_handle == NULL) {
@@ -224,14 +239,12 @@ SystemFlags::~SystemFlags() {
}
void SystemFlags::Close() {
if(SystemFlags::ENABLE_THREADED_LOGGING) {
if(threadLogger != NULL) {
SystemFlags::ENABLE_THREADED_LOGGING = false;
threadLogger->signalQuit();
threadLogger->shutdownAndWait();
delete threadLogger;
threadLogger = NULL;
}
if(threadLogger != NULL) {
SystemFlags::ENABLE_THREADED_LOGGING = false;
threadLogger->signalQuit();
threadLogger->shutdownAndWait();
delete threadLogger;
threadLogger = NULL;
}
if(SystemFlags::debugLogFileList.size() > 0) {
@@ -285,7 +298,8 @@ void SystemFlags::handleDebug(DebugType type, const char *fmt, ...) {
va_end(argList);
if(SystemFlags::ENABLE_THREADED_LOGGING &&
threadLogger != NULL) {
threadLogger != NULL &&
threadLogger->getRunningStatus() == true) {
threadLogger->addLogEntry(type, szBuf);
}
else {