diff options
| author | Gavin Andresen <[email protected]> | 2013-02-22 09:00:13 -0800 |
|---|---|---|
| committer | Gavin Andresen <[email protected]> | 2013-02-22 09:00:13 -0800 |
| commit | b8f4e42e1bd9f80690d61dc2ab86edb14b2ecb40 (patch) | |
| tree | 23f8ccc7000a4fe55a4d3eaed644705fe2a34a01 /src/main.cpp | |
| parent | Merge pull request #2310 from sipa/progressbar (diff) | |
| parent | Drop padding in blk* when finalizing file (diff) | |
| download | discoin-b8f4e42e1bd9f80690d61dc2ab86edb14b2ecb40.tar.xz discoin-b8f4e42e1bd9f80690d61dc2ab86edb14b2ecb40.zip | |
Merge pull request #2229 from sipa/prealloc
Native versions for AllocateFileRange()
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main.cpp b/src/main.cpp index 3151a806d..9edd9a299 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1533,7 +1533,7 @@ bool CBlock::DisconnectBlock(CValidationState &state, CBlockIndex *pindex, CCoin } } -void static FlushBlockFile() +void static FlushBlockFile(bool fFinalize = false) { LOCK(cs_LastBlockFile); @@ -1541,12 +1541,16 @@ void static FlushBlockFile() FILE *fileOld = OpenBlockFile(posOld); if (fileOld) { + if (fFinalize) + TruncateFile(fileOld, infoLastBlockFile.nSize); FileCommit(fileOld); fclose(fileOld); } fileOld = OpenUndoFile(posOld); if (fileOld) { + if (fFinalize) + TruncateFile(fileOld, infoLastBlockFile.nUndoSize); FileCommit(fileOld); fclose(fileOld); } @@ -1965,7 +1969,7 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd } else { while (infoLastBlockFile.nSize + nAddSize >= MAX_BLOCKFILE_SIZE) { printf("Leaving block file %i: %s\n", nLastBlockFile, infoLastBlockFile.ToString().c_str()); - FlushBlockFile(); + FlushBlockFile(true); nLastBlockFile++; infoLastBlockFile.SetNull(); pblocktree->ReadBlockFileInfo(nLastBlockFile, infoLastBlockFile); // check whether data for the new file somehow already exist; can fail just fine |