arvidn
6785046c2f
introduce a download_priority_t type, for uniform an type-safe piece- and file priorities
2017-11-02 08:20:21 +01:00
Alden Torres
f02e7514e1
fix issue of null m_part_file in default_storage readv/writev ( #2490 )
...
call need_partfile if necessary in default_storage constructor and no .reset() in release_files()
2017-10-31 16:49:58 +01:00
Alden Torres
b380bf8059
minor and general code cleanup/refactor
2017-10-25 09:58:47 +02:00
Alden Torres
1ce3483a9e
creating part file if needed only in set_file_priorities
2017-10-24 09:56:49 +02:00
Steven Siloti
0232dc35cd
deprecate lock_files ( #2344 )
...
File locking interacts poorly with the path to replace a read only file handle
with a read/write one. For performance reasons the old handle is not closed
until the new one is put in place. With file locking this obviously cannot
work because the first handle is holding a lock on the file. As a result,
file_pool::open_file fails in this case. Even if we dropped the reference to
the read only file handle before attempting to re-open it, the open could still
fail if another thread is holding a reference to the read only handle.
There doesn't seem to be a good way around this. The simple solution would be
to always open files in read/write mode, but that has obvious safety downsides.
Any other solution would significantly complicate the file pool code.
Deprecating file locking seems to be the least bad option.
2017-09-17 10:43:27 +02:00
arvidn
865ff09a84
merge RC_1_1 into master
2017-08-10 16:44:57 +02:00
arvidn
378a0e974b
fix issue of force-recheck or seeding from read-only media, torrents with empty files in them. Previously libtorrent would create empty files up-front unconditionally, now they won't be created if they already exist
2017-08-09 18:48:49 +02:00
arvidn
1f3730fa5a
fix force-recheck issue (new files would not be picked up)
2017-08-06 09:49:51 +02:00
arvidn
322007bb6a
make save_state_flags a strong type
2017-07-30 09:06:41 -07:00
arvidn
c4afb5e949
use a dedicated class template for flags types instead of enum class. It's more backwards compatible and improves ergonomics
2017-07-15 01:15:57 -07:00
arvidn
5c37eb174f
drop support for windows compilers without std::string and wchar_t (believed to be old cygwin)
2017-07-02 08:24:55 -04:00
arvidn
ed79929528
factor out has_any_file to storage_utils
2017-06-23 16:33:48 -04:00
arvidn
b7642f75d5
move clear_bufs out of storage.cpp into storage_utils
2017-06-21 13:04:05 -04:00
arvidn
77cc2b4eea
fix re-check issue after move_storage
2017-06-20 22:27:39 -04:00
arvidn
aa842948a3
storage_params cleanup
2017-06-20 10:27:28 -04:00
arvidn
ff454a92d4
unify some operation-enums and strings to use operation_t
2017-06-18 07:31:45 -04:00
Arvid Norberg
5344761da4
make flags to move_storage a proper enum class ( #2043 )
2017-06-01 04:15:15 -04:00
arvidn
ffaabd846c
make file open mode flags be an enum class for type-safety
2017-05-28 11:16:59 -04:00
arvidn
b1b4360df6
merged RC_1_1 into master
2017-05-08 07:48:42 -04:00
arvidn
14dbd1c92d
fix race condition in disk I/O storage class
2017-05-07 13:47:50 -04:00
arvidn
76ef0babed
remove deprecated file_base feature of file_storage
2017-05-04 12:03:31 -04:00
Alden Torres
fd51c0b8bf
minor refactor in file_storeage and typos
2017-05-02 22:34:11 -04:00
arvidn
af495da56b
use std::function instead of the fileop interface for readwritev()
2017-05-02 08:07:29 -04:00
arvidn
749d0da875
make iovec_t an alias for span<char>, in preparation for removing it altogether in favour of span
2017-04-30 11:49:08 -04:00
Alden Torres
b863306c8b
minor code cleanup ( #1933 )
2017-04-22 21:33:38 -04:00
arvidn
cef9773c70
generalize part_file::export_file to pass back the buffers to a callback function
2017-04-15 20:01:18 -04:00
arvidn
480bde9333
change formatting of namespace declarations
2017-04-12 14:26:35 -04:00
arvidn
79d7ae3638
separate path and filesystem functions out into its own translation unit/header file pair, separating it from the file and directory class
2017-04-11 18:07:55 -04:00
Arvid Norberg
c35718d322
use unsigned integer for file and storage flags ( #1895 )
...
use unsigned integer for file and storage flags
2017-04-09 01:28:46 -04:00
Arvid Norberg
13b16a63a3
use unsigned type for file flags. make file_pool private to disk_io_thread ( #1894 )
...
use unsigned type for file flags. make file_pool private to disk_io_thread. move close_file_interval logic to the disk thread. don't expose file in public interface, and make pool_file_status properly public (not part of file_pool and renamed to open_file_status), this is exposed in public interface via torrent_handle::file_status()
2017-04-08 18:24:50 -04:00
arvidn
51c42adc3e
steps towars making file_pool private to disk_io_thread
2017-04-07 08:38:35 -04:00
arvidn
85f6febfff
fix some left-over incorrect default piece priorities (1 -> 4)
2017-02-11 15:32:51 -05:00
Alden Torres
4a80e2667c
fixing sign-conversion warnings, part 15, torrent class ( #1686 )
...
fixing sign-conversion warnings, part 15, torrent class
2017-02-11 14:58:02 -05:00
arvidn
6b91adab6a
merged RC_1_1 into master
2017-01-28 14:36:23 -05:00
arvidn
132be5101f
fix stat cache issue that sometimes would produce incorrect resume data
2017-01-22 18:14:10 -05:00
arvidn
4fe5320bf8
remove debug logging of deleting files
2017-01-22 09:44:49 -05:00
arvidn
c239c2bdc4
factor out storage_piece_set into its own file
2017-01-22 09:29:52 -05:00
arvidn
d03540e3b3
move disk_job_fence to its own file
2017-01-22 01:20:27 -05:00
arvidn
202386dd9d
factor out verify_resume_data to storage_utils
2017-01-20 01:36:03 -05:00
arvidn
e98dd14760
factor out delete_files function into storage_utils
2017-01-18 00:56:01 -05:00
Arvid Norberg
ec37436d49
factor out move_storage function to storage_utils.cpp ( #1571 )
2017-01-17 08:02:44 -05:00
Alden Torres
a5825c0d2e
fixing sign-conversion warnings, part 5, minor refactor ( #1559 )
...
fixing sign-conversion warnings, part 5, minor refactor
2017-01-16 21:51:49 -05:00
Arvid Norberg
3d06371f31
factor out some common storage utilities out of storage.cpp ( #1515 )
...
factor out some common storage utilities out of storage.cpp
2017-01-11 00:42:10 -05:00
arvidn
d1ea80c2c3
remove disk-access-log build configuration
2017-01-09 08:37:02 -05:00
arvidn
1d1ab4f4b5
removed file-leak code, temporarily used to trouble-shoot files appearing to be left open
2017-01-09 01:43:15 -05:00
arvidn
0c7e86078b
merged RC_1_1 into master
2017-01-08 10:18:41 -05:00
arvidn
7957e2a30e
fix move_storage() to its own directory (would delete the files)
2017-01-03 21:09:26 -05:00
arvidn
41dbb47123
compact block_cache_reference by using storage_index_t instead of pointer. make sure storage object is kept alive by block_cache_references
2017-01-02 13:45:16 -05:00
arvidn
4ebc344e48
make disk_io_thread responsible for the storage object. torrents refer to it by index
2017-01-01 13:54:39 -05:00
Andrei Kurushin
1ec5c69dcd
minor code corrections ( #1430 )
...
use compact span cast. extend split_path api with only_first_part flag. use single loadlibrary and getprocaddress for IP helper
2016-12-26 22:45:48 -08:00