Merge pull request #10800 from jackpoz/log_race_condition

Core/Logs: Fix race condition in Log
This commit is contained in:
Jorge
2013-09-13 12:22:31 -07:00
2 changed files with 4 additions and 3 deletions

View File

@@ -40,7 +40,7 @@ AppenderFile::~AppenderFile()
void AppenderFile::_write(LogMessage const& message)
{
bool exceedMaxSize = maxFileSize > 0 && (fileSize + message.Size()) > maxFileSize;
bool exceedMaxSize = maxFileSize > 0 && (fileSize.value() + message.Size()) > maxFileSize;
if (dynamicName)
{
@@ -56,7 +56,7 @@ void AppenderFile::_write(LogMessage const& message)
fprintf(logfile, "%s%s", message.prefix.c_str(), message.text.c_str());
fflush(logfile);
fileSize += message.Size();
fileSize += uint64(message.Size());
if (dynamicName)
CloseFile();

View File

@@ -19,6 +19,7 @@
#define APPENDERFILE_H
#include "Appender.h"
#include "ace/Atomic_Op.h"
class AppenderFile: public Appender
{
@@ -37,7 +38,7 @@ class AppenderFile: public Appender
bool dynamicName;
bool backup;
uint64 maxFileSize;
uint64 fileSize;
ACE_Atomic_Op<ACE_Thread_Mutex, uint64> fileSize;
};
#endif