mirror of
https://github.com/transmission/transmission
synced 2025-03-10 14:13:23 +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,
|
const uint8_t * torrentHash,
|
||||||
int * setmePeersKnown,
|
int * setmePeersKnown,
|
||||||
int * setmePeersConnected,
|
int * setmePeersConnected,
|
||||||
|
int * setmeSeedsConnected,
|
||||||
int * setmePeersSendingToUs,
|
int * setmePeersSendingToUs,
|
||||||
int * setmePeersGettingFromUs,
|
int * setmePeersGettingFromUs,
|
||||||
int * setmePeersFrom )
|
int * setmePeersFrom )
|
||||||
|
@ -1397,6 +1398,7 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
||||||
|
|
||||||
*setmePeersKnown = tr_ptrArraySize( t->pool );
|
*setmePeersKnown = tr_ptrArraySize( t->pool );
|
||||||
*setmePeersConnected = 0;
|
*setmePeersConnected = 0;
|
||||||
|
*setmeSeedsConnected = 0;
|
||||||
*setmePeersSendingToUs = 0;
|
*setmePeersSendingToUs = 0;
|
||||||
*setmePeersGettingFromUs = 0;
|
*setmePeersGettingFromUs = 0;
|
||||||
|
|
||||||
|
@ -1420,6 +1422,9 @@ tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
||||||
|
|
||||||
if( clientIsUploadingTo( peer ) )
|
if( clientIsUploadingTo( peer ) )
|
||||||
++*setmePeersGettingFromUs;
|
++*setmePeersGettingFromUs;
|
||||||
|
|
||||||
|
if( atom->flags & ADDED_F_SEED_FLAG )
|
||||||
|
++*setmeSeedsConnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
managerUnlock( (tr_peerMgr*)manager );
|
managerUnlock( (tr_peerMgr*)manager );
|
||||||
|
|
|
@ -105,6 +105,7 @@ void tr_peerMgrTorrentStats( const tr_peerMgr * manager,
|
||||||
const uint8_t * torrentHash,
|
const uint8_t * torrentHash,
|
||||||
int * setmePeersKnown,
|
int * setmePeersKnown,
|
||||||
int * setmePeersConnected,
|
int * setmePeersConnected,
|
||||||
|
int * setmeSeedsConnected,
|
||||||
int * setmePeersSendingToUs,
|
int * setmePeersSendingToUs,
|
||||||
int * setmePeersGettingFromUs,
|
int * setmePeersGettingFromUs,
|
||||||
int * setmePeersFrom ); /* <-- array of TR_PEER_FROM__MAX */
|
int * setmePeersFrom ); /* <-- array of TR_PEER_FROM__MAX */
|
||||||
|
|
|
@ -687,6 +687,7 @@ tr_torrentStat( tr_torrent * tor )
|
||||||
tr_stat * s;
|
tr_stat * s;
|
||||||
struct tr_tracker * tc;
|
struct tr_tracker * tc;
|
||||||
const tr_tracker_info * ti;
|
const tr_tracker_info * ti;
|
||||||
|
int seedsConnected = 0;
|
||||||
|
|
||||||
if( !tor )
|
if( !tor )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -714,6 +715,7 @@ tr_torrentStat( tr_torrent * tor )
|
||||||
tor->info.hash,
|
tor->info.hash,
|
||||||
&s->peersKnown,
|
&s->peersKnown,
|
||||||
&s->peersConnected,
|
&s->peersConnected,
|
||||||
|
&seedsConnected,
|
||||||
&s->peersSendingToUs,
|
&s->peersSendingToUs,
|
||||||
&s->peersGettingFromUs,
|
&s->peersGettingFromUs,
|
||||||
s->peersFrom );
|
s->peersFrom );
|
||||||
|
@ -741,9 +743,16 @@ tr_torrentStat( tr_torrent * tor )
|
||||||
s->haveUnchecked = tr_cpHaveTotal( tor->completion ) - s->haveValid;
|
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;
|
s->desiredAvailable = 0;
|
||||||
else {
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
tr_piece_index_t i;
|
tr_piece_index_t i;
|
||||||
tr_bitfield * peerPieces = tr_peerMgrGetAvailable( tor->handle->peerMgr,
|
tr_bitfield * peerPieces = tr_peerMgrGetAvailable( tor->handle->peerMgr,
|
||||||
tor->info.hash );
|
tor->info.hash );
|
||||||
|
|
Loading…
Add table
Reference in a new issue