libtorrent with premiere torrent support
Go to file
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
.github add contributing and issue template 2016-04-14 19:06:52 -04:00
bindings deprecate lock_files (#2344) 2017-09-17 10:43:27 +02:00
cmake/Modules Fix compilation with cmake (#767) 2016-05-29 12:58:16 -04:00
docs merged RC_1_1 into master 2017-09-06 13:51:36 +02:00
ed25519 move const data to readonly segment 2017-01-09 14:41:44 -05:00
examples deprecate lock_files (#2344) 2017-09-17 10:43:27 +02:00
include/libtorrent deprecate lock_files (#2344) 2017-09-17 10:43:27 +02:00
m4 merged RC_1_1 into master 2016-12-20 01:16:13 -05:00
simulation move dht_settings into its own header cpp file-pair and dht_settings into the dht namespace 2017-09-04 22:38:16 +02:00
src deprecate lock_files (#2344) 2017-09-17 10:43:27 +02:00
test don't shadow static_category in alerts 2017-09-16 19:58:11 +02:00
tools strip dead code in gprof2dot.py 2017-09-11 10:41:37 +02:00
.gitignore merge RC_1_1 into master 2017-02-12 02:24:14 -05:00
.gitmodules add .gitmodules 2015-08-07 23:19:37 -04:00
.travis.yml use release builds for sonar scan 2017-09-14 12:36:10 +02:00
AUTHORS merged RC_1_1 into master 2017-08-16 22:46:47 +02:00
CMakeLists.txt fix building/running unit tests with cmake 2017-09-16 10:19:10 +02:00
CONTRIBUTING.rst update changelog and update contributing document 2016-04-24 15:33:14 -04:00
COPYING merge copyright year update and changelog from RC_1_0 2016-01-17 18:57:46 -05:00
ChangeLog merged RC_1_1 into master 2017-09-16 21:07:29 +02:00
Jamfile move dht_settings into its own header cpp file-pair and dht_settings into the dht namespace 2017-09-04 22:38:16 +02:00
Jamroot.jam add Jamroot.jam 2012-06-14 05:43:10 +00:00
LICENSE merge copyright year update and changelog from RC_1_0 2016-01-17 18:57:46 -05:00
Makefile.am merged RC_1_1 into master 2017-07-27 11:37:02 -07:00
NEWS polishing, update copyright 2014-07-02 07:17:50 +00:00
README.rst add contributing and issue template 2016-04-14 19:06:52 -04:00
appveyor.yml build boost from scratch on linux (to get a newer version). upgrade travis to trusty and newer xcode. python binding fixes 2017-08-14 12:22:06 +02:00
autotool.sh Fix autotool.sh warning if builddir exists 2017-01-14 09:19:23 -05:00
bootstrap.sh merged bootstrap.sh script from RC_0_16 2013-05-29 02:11:15 +00:00
build_dist.sh merge RC_1_1 into master 2017-07-07 16:45:03 -07:00
configure.ac merged RC_1_1 into master 2017-09-06 13:51:36 +02:00
libtorrent-rasterbar-cmake.pc.in don't add to pkg-config. #462 2009-01-07 02:22:58 +00:00
libtorrent-rasterbar.pc.in merged fixes from RC_0_16 2013-09-07 21:27:07 +00:00
libtorrent-rasterbarConfig.cmake add cmake package support 2017-07-10 16:57:29 -07:00
setup.py Fixup python code in bindings to pass PEP8 codestyle 2017-01-21 00:21:54 -05:00
sonar-project.properties only analyze src/ and include/ 2017-09-13 10:47:18 +02:00

README.rst

libtorrent
----------

.. image:: https://travis-ci.org/arvidn/libtorrent.svg?branch=master
    :target: https://travis-ci.org/arvidn/libtorrent

.. image:: https://ci.appveyor.com/api/projects/status/w7teauvub5813mew/branch/master?svg=true
    :target: https://ci.appveyor.com/project/arvidn/libtorrent/branch/master

.. image:: https://codecov.io/github/arvidn/libtorrent/coverage.svg?branch=master
    :target: https://codecov.io/github/arvidn/libtorrent?branch=master&view=all#sort=missing&dir=desc

.. image:: https://www.openhub.net/p/rasterbar-libtorrent/widgets/project_thin_badge.gif
    :target: https://www.openhub.net/p/rasterbar-libtorrent?ref=sample

libtorrent is an open source C++ library implementing the BitTorrent protocol,
along with most popular extensions, making it suitable for real world
deployment. It is configurable to be able to fit both servers and embedded
devices.

The main goals of libtorrent are to be efficient and easy to use.

See `libtorrent.org`__ for more detailed build and usage instructions.

.. __: http://libtorrent.org

To build with boost-build, make sure boost and boost-build is installed and run:

   b2

In the libtorrent root. To build the examples, run ``b2`` in the ``examples``
directory.

See `building.html`__ for more details on how to build and which configuration
options are available. For python bindings, see `the python docs`__.

.. __: docs/building.rst
.. __: docs/python_binding.rst