diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-01-28 23:43:29 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-01-29 00:14:30 +0900 |
| commit | 8f51793b19c751bde0e41448aaeb9eb54d2fdbb1 (patch) | |
| tree | a4c085d881b499b87fba5932e80059b854229b09 /src/BtFileAllocationEntry.cc | |
| parent | fc95a91eb617beb9130a6b1c7ed7c14a61189f8e (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.cc | 4 |
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()) { |
