diff --git a/src/log.cpp b/src/log.cpp index 1611e688f..8fec13189 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -29,13 +29,14 @@ int logLevel=LOGLEVEL_INFO; FILE* logFile; char* logFileBuf; +char* logFileWriteBuf; unsigned int logFilePosI; unsigned int logFilePosO; std::thread* logFileThread; std::mutex logFileLock; std::mutex logFileLockI; std::condition_variable logFileNotify; -bool logFileAvail=false; +std::atomic logFileAvail(false); std::atomic logPosition; @@ -157,8 +158,8 @@ void _logFileThread() { } } else { // wait - if (!logFileAvail) break; fflush(logFile); + if (!logFileAvail) break; logFileNotify.wait(lock); } } @@ -177,6 +178,7 @@ bool startLogFile(const char* path) { } logFileBuf=new char[TA_LOGFILE_BUF_SIZE]; + logFileWriteBuf=new char[TA_LOGFILE_BUF_SIZE]; logFilePosI=0; logFilePosO=0; logFileAvail=true;