fixed crashing bug when destructing session

This commit is contained in:
Arvid Norberg 2006-05-21 09:46:01 +00:00
parent 11013054d6
commit 44f21d0fdf
3 changed files with 33 additions and 16 deletions

View File

@ -348,6 +348,9 @@ want to download.</li>
It uses Boost.Thread, Boost.Filesystem, Boost.Date_time and various other
boost libraries as well as <a class="reference" href="http://www.zlib.org">zlib</a> (shipped) and <a class="reference" href="http://asio.sf.net">asio</a> (shipped). At least version
1.33.1 of boost is required.</p>
<p>Since libtorrent uses asio, it will take full advantage of high performance
network APIs on the most popular platforms. I/O completion ports on windows,
epoll on linux and kqueue on MacOS X and BSD.</p>
<p>libtorrent has been successfully compiled and tested on:</p>
<blockquote>
<ul class="simple">
@ -367,6 +370,10 @@ boost libraries as well as <a class="reference" href="http://www.zlib.org">zlib<
</ul>
</blockquote>
<p>libtorrent is released under the <a class="reference" href="http://www.opensource.org/licenses/bsd-license.php">BSD-license</a>.</p>
<p>This means that you can use the library in your project without having to
release its source code. The only requirement is that you give credit
to the author of the library by including the libtorrent licence in your
software or documentation.</p>
</div>
<div class="section">
<h1><a id="downloading-and-building" name="downloading-and-building">downloading and building</a></h1>
@ -2274,7 +2281,7 @@ the threshold is 7, all pieces which 7 or more peers have, will be downloaded
in index order.</p>
<p><tt class="docutils literal"><span class="pre">max_allowed_in_request_queue</span></tt> is the number of outstanding block requests
a peer is allowed to queue up in the client. If a peer sends more requests
than this (before the first one has been sent) the last request will be
than this (before the first one has been handled) the last request will be
dropped. The higher this is, the faster upload speeds the client can get to a
single peer.</p>
<p><tt class="docutils literal"><span class="pre">max_out_request_queue</span></tt> is the maximum number of outstanding requests to
@ -2282,10 +2289,11 @@ send to a peer. This limit takes precedence over <tt class="docutils literal"><s
no matter the download speed, the number of outstanding requests will never
exceed this limit.</p>
<p><tt class="docutils literal"><span class="pre">whole_pieces_threshold</span></tt> is a limit in seconds. if a whole piece can be
downloaded in this number of seconds, or less, the peer_connection will prefer
to request whole pieces at a time from this peer. The benefit of this is to
better utilize disk caches by doing localized accesses and also to make it
easier to identify bad peers if a piece fails the hash check.</p>
downloaded in at least this number of seconds from a specific peer, the
peer_connection will prefer requesting whole pieces at a time from this peer.
The benefit of this is to better utilize disk caches by doing localized
accesses and also to make it easier to identify bad peers if a piece fails
the hash check.</p>
</div>
<div class="section">
<h1><a id="ip-filter" name="ip-filter">ip_filter</a></h1>

View File

@ -70,7 +70,6 @@ __ http://www.getright.com/seedtorrent.html
__ extension_protocol.html
__ udp_tracker_protocol.html
libtorrent is portable at least among Windows, MacOS X and other UNIX-systems.
It uses Boost.Thread, Boost.Filesystem, Boost.Date_time and various other
boost libraries as well as zlib_ (shipped) and asio_ (shipped). At least version
@ -79,6 +78,10 @@ boost libraries as well as zlib_ (shipped) and asio_ (shipped). At least version
.. _zlib: http://www.zlib.org
.. _asio: http://asio.sf.net
Since libtorrent uses asio, it will take full advantage of high performance
network APIs on the most popular platforms. I/O completion ports on windows,
epoll on linux and kqueue on MacOS X and BSD.
libtorrent has been successfully compiled and tested on:
* Windows 2000 vc7.1
@ -97,6 +100,11 @@ libtorrent is released under the BSD-license_.
.. _BSD-license: http://www.opensource.org/licenses/bsd-license.php
This means that you can use the library in your project without having to
release its source code. The only requirement is that you give credit
to the author of the library by including the libtorrent licence in your
software or documentation.
downloading and building
========================
@ -2153,7 +2161,7 @@ in index order.
``max_allowed_in_request_queue`` is the number of outstanding block requests
a peer is allowed to queue up in the client. If a peer sends more requests
than this (before the first one has been sent) the last request will be
than this (before the first one has been handled) the last request will be
dropped. The higher this is, the faster upload speeds the client can get to a
single peer.
@ -2163,10 +2171,11 @@ no matter the download speed, the number of outstanding requests will never
exceed this limit.
``whole_pieces_threshold`` is a limit in seconds. if a whole piece can be
downloaded in this number of seconds, or less, the peer_connection will prefer
to request whole pieces at a time from this peer. The benefit of this is to
better utilize disk caches by doing localized accesses and also to make it
easier to identify bad peers if a piece fails the hash check.
downloaded in at least this number of seconds from a specific peer, the
peer_connection will prefer requesting whole pieces at a time from this peer.
The benefit of this is to better utilize disk caches by doing localized
accesses and also to make it easier to identify bad peers if a piece fails
the hash check.
ip_filter

View File

@ -208,6 +208,11 @@ namespace libtorrent
boost::weak_ptr<torrent> find_torrent(const sha1_hash& info_hash);
peer_id const& get_peer_id() const { return m_peer_id; }
// this is where all active sockets are stored.
// the selector can sleep while there's no activity on
// them
demuxer m_selector;
tracker_manager m_tracker_manager;
torrent_map m_torrents;
@ -259,11 +264,6 @@ namespace libtorrent
// interface to listen on
tcp::endpoint m_listen_interface;
// this is where all active sockets are stored.
// the selector can sleep while there's no activity on
// them
demuxer m_selector;
boost::shared_ptr<socket_acceptor> m_listen_socket;
// the entries in this array maps the