mirror of
https://github.com/transmission/transmission
synced 2025-03-10 06:02:57 +00:00
another tweak for calculating tr_stat.desiredAvailable faster, suggested by BentMyWookie
This commit is contained in:
parent
d4618ef74d
commit
cdf5cb87d6
3 changed files with 17 additions and 2 deletions
|
@ -1382,6 +1382,7 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
|||
const uint8_t * torrentHash,
|
||||
int * setmePeersKnown,
|
||||
int * setmePeersConnected,
|
||||
int * setmeSeedsConnected,
|
||||
int * setmePeersSendingToUs,
|
||||
int * setmePeersGettingFromUs,
|
||||
int * setmePeersFrom )
|
||||
|
@ -1397,6 +1398,7 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
|||
|
||||
*setmePeersKnown = tr_ptrArraySize( t->pool );
|
||||
*setmePeersConnected = 0;
|
||||
*setmeSeedsConnected = 0;
|
||||
*setmePeersSendingToUs = 0;
|
||||
*setmePeersGettingFromUs = 0;
|
||||
|
||||
|
@ -1420,6 +1422,9 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
|||
|
||||
if( clientIsUploadingTo( peer ) )
|
||||
++*setmePeersGettingFromUs;
|
||||
|
||||
if( atom->flags & ADDED_F_SEED_FLAG )
|
||||
++*setmeSeedsConnected;
|
||||
}
|
||||
|
||||
managerUnlock( (tr_peerMgr*)manager );
|
||||
|
|
|
@ -105,6 +105,7 @@ void tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
|||
const uint8_t * torrentHash,
|
||||
int * setmePeersKnown,
|
||||
int * setmePeersConnected,
|
||||
int * setmeSeedsConnected,
|
||||
int * setmePeersSendingToUs,
|
||||
int * setmePeersGettingFromUs,
|
||||
int * setmePeersFrom ); /* <-- array of TR_PEER_FROM__MAX */
|
||||
|
|
|
@ -687,6 +687,7 @@ tr_torrentStat( tr_torrent * tor )
|
|||
tr_stat * s;
|
||||
struct tr_tracker * tc;
|
||||
const tr_tracker_info * ti;
|
||||
int seedsConnected = 0;
|
||||
|
||||
if( !tor )
|
||||
return NULL;
|
||||
|
@ -714,6 +715,7 @@ tr_torrentStat( tr_torrent * tor )
|
|||
tor->info.hash,
|
||||
&s->peersKnown,
|
||||
&s->peersConnected,
|
||||
&seedsConnected,
|
||||
&s->peersSendingToUs,
|
||||
&s->peersGettingFromUs,
|
||||
s->peersFrom );
|
||||
|
@ -741,9 +743,16 @@ tr_torrentStat( tr_torrent * tor )
|
|||
s->haveUnchecked = tr_cpHaveTotal( tor->completion ) - s->haveValid;
|
||||
|
||||
|
||||
if( !s->leftUntilDone || !tor->isRunning || !s->peersConnected )
|
||||
if( seedsConnected > 0 )
|
||||
{
|
||||
s->desiredAvailable = s->leftUntilDone;
|
||||
}
|
||||
if( !s->leftUntilDone || !s->peersConnected )
|
||||
{
|
||||
s->desiredAvailable = 0;
|
||||
else {
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_piece_index_t i;
|
||||
tr_bitfield * peerPieces = tr_peerMgrGetAvailable( tor->handle->peerMgr,
|
||||
tor->info.hash );
|
||||
|
|
Loading…
Add table
Reference in a new issue