summaryrefslogtreecommitdiff
path: root/src/BtFileAllocationEntry.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-01-28 23:43:29 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2016-01-29 00:14:30 +0900
commit8f51793b19c751bde0e41448aaeb9eb54d2fdbb1 (patch)
treea4c085d881b499b87fba5932e80059b854229b09 /src/BtFileAllocationEntry.cc
parentfc95a91eb617beb9130a6b1c7ed7c14a61189f8e (diff)
Add --max-mmap-limit option
Set the maximum file size to enable mmap (see --enable-mmap option). The file size is determined by the sum of all files contained in one download. For example, if a download contains 5 files, then file size is the total size of those files. If file size is strictly greater than the size specified in this option, mmap will be disabled.
Diffstat (limited to 'src/BtFileAllocationEntry.cc')
-rw-r--r--src/BtFileAllocationEntry.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/BtFileAllocationEntry.cc b/src/BtFileAllocationEntry.cc
index ed44e44e..dc9cc04f 100644
--- a/src/BtFileAllocationEntry.cc
+++ b/src/BtFileAllocationEntry.cc
@@ -64,7 +64,9 @@ void BtFileAllocationEntry::prepareForNextAction(
BtSetup().setup(commands, getRequestGroup(), e, option.get());
if (option->getAsBool(PREF_ENABLE_MMAP) &&
- option->get(PREF_FILE_ALLOCATION) != V_NONE) {
+ option->get(PREF_FILE_ALLOCATION) != V_NONE &&
+ getRequestGroup()->getPieceStorage()->getDiskAdaptor()->size() <=
+ option->getAsLLInt(PREF_MAX_MMAP_LIMIT)) {
getRequestGroup()->getPieceStorage()->getDiskAdaptor()->enableMmap();
}
if (!getRequestGroup()->downloadFinished()) {