aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgavinandresen <gavinandresen@1a98c847-1fd6-4fd8-948a-caf3550aa51b>2010-11-16 02:32:36 +0000
committergavinandresen <gavinandresen@1a98c847-1fd6-4fd8-948a-caf3550aa51b>2010-11-16 02:32:36 +0000
commit026c5f7617a1a8753ff295a4b5cc1c079e8c3d79 (patch)
treece53b2360eb66d3a93348031d7f4bd859717b1de
parent222e3de4be2e7037b82112867bb48a9e8cb36918 (diff)
downloadbitcoin-026c5f7617a1a8753ff295a4b5cc1c079e8c3d79.tar.xz
Re-open debug.log every ten minutes instead of every printf; fixes performance problem with Mac FileVault.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@181 1a98c847-1fd6-4fd8-948a-caf3550aa51b
-rw-r--r--util.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/util.cpp b/util.cpp
index b7840841d1..5ba0fb510d 100644
--- a/util.cpp
+++ b/util.cpp
@@ -157,10 +157,19 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
else
{
// print to debug.log
- char pszFile[MAX_PATH+100];
- GetDataDir(pszFile);
- strlcat(pszFile, "/debug.log", sizeof(pszFile));
- FILE* fileout = fopen(pszFile, "a");
+ static FILE* fileout = NULL;
+ static int64 nOpenTime = 0;
+
+ if (GetTime()-nOpenTime > 10 * 60)
+ {
+ if (fileout)
+ fclose(fileout);
+ char pszFile[MAX_PATH+100];
+ GetDataDir(pszFile);
+ strlcat(pszFile, "/debug.log", sizeof(pszFile));
+ fileout = fopen(pszFile, "a");
+ nOpenTime = GetTime();
+ }
if (fileout)
{
//// Debug print useful for profiling
@@ -169,7 +178,7 @@ inline int OutputDebugStringF(const char* pszFormat, ...)
va_start(arg_ptr, pszFormat);
ret = vfprintf(fileout, pszFormat, arg_ptr);
va_end(arg_ptr);
- fclose(fileout);
+ fflush(fileout);
}
}