void writeLog(const char *s, int length) { int forceBuffering = (dobuffering++ % 60) != 0; int restLength = commonInfo->maxLogBufferLength - commonInfo->logBufferLength; if (restLength < 512) forceBuffering = 0; if (commonInfo->inWriteLog || forceBuffering) { appendToLogBuffer(s, length); return; } commonInfo->inWriteLog++; if (!commonInfo->logKeepOpen) { openLogFile(); } flushLogBuffer(); if (sceIoWrite(commonInfo->logFd, s, length) < 0) { // Can't write to the log file right now, probably because the interrupts are disabled. // Save the log string for later output. appendToLogBuffer(s, length); } else { flushLogBuffer(); } if (!commonInfo->logKeepOpen) { closeLogFile(); } commonInfo->inWriteLog--; }
void writeLog(const char *s, int length) { if (commonInfo->inWriteLog) { appendToLogBuffer(s, length); return; } commonInfo->inWriteLog++; if (!commonInfo->logKeepOpen) { openLogFile(); } flushLogBuffer(); if (ioWrite(commonInfo->logFd, s, length) < 0) { // Can't write to the log file right now, probably because the interrupts are disabled. // Save the log string for later output. appendToLogBuffer(s, length); } else { flushLogBuffer(); } if (!commonInfo->logKeepOpen) { closeLogFile(); } commonInfo->inWriteLog--; }