From 5e4f95035837772f9fd03a4da7438fa0ec1883be Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 8 Jul 2010 23:38:57 +0000 Subject: [PATCH] (trunk libT) #1521 "memory cache to reduce disk IO" -- whoops, I missed these parts from Longinus' patch in r10978 --- libtransmission/cache.h | 1 + libtransmission/session.c | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/libtransmission/cache.h b/libtransmission/cache.h index 60189667f..36277dcc7 100644 --- a/libtransmission/cache.h +++ b/libtransmission/cache.h @@ -58,6 +58,7 @@ int tr_cachePrefetchBlock( tr_cache * cache, /*** **** ***/ +int tr_cacheFlushDone( tr_cache * cache ); int tr_cacheFlushTorrent( tr_cache * cache, tr_torrent * torrent ); diff --git a/libtransmission/session.c b/libtransmission/session.c index 54b0061c4..80b54eafd 100644 --- a/libtransmission/session.c +++ b/libtransmission/session.c @@ -359,13 +359,13 @@ tr_sessionGetSettings( tr_session * s, struct tr_benc * d ) tr_bencDictAddBool( d, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_ENABLED, tr_sessionIsTorrentDoneScriptEnabled( s ) ); tr_bencDictAddStr ( d, TR_PREFS_KEY_SCRIPT_TORRENT_DONE_FILENAME, tr_sessionGetTorrentDoneScript( s ) ); tr_bencDictAddBool( d, TR_PREFS_KEY_ALT_SPEED_ENABLED, tr_sessionUsesAltSpeed( s ) ); - tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_UP_KBps, tr_sessionGetAltSpeed_KBps( s, TR_UP ) ); - tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_DOWN_KBps, tr_sessionGetAltSpeed_KBps( s, TR_DOWN ) ); + tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_UP_KBps, tr_sessionGetAltSpeed_KBps( s, TR_UP ) ); + tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_DOWN_KBps, tr_sessionGetAltSpeed_KBps( s, TR_DOWN ) ); tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_TIME_BEGIN, tr_sessionGetAltSpeedBegin( s ) ); tr_bencDictAddBool( d, TR_PREFS_KEY_ALT_SPEED_TIME_ENABLED, tr_sessionUsesAltSpeedTime( s ) ); tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_TIME_END, tr_sessionGetAltSpeedEnd( s ) ); tr_bencDictAddInt ( d, TR_PREFS_KEY_ALT_SPEED_TIME_DAY, tr_sessionGetAltSpeedDay( s ) ); - tr_bencDictAddInt ( d, TR_PREFS_KEY_USPEED_KBps, tr_sessionGetSpeedLimit_KBps( s, TR_UP ) ); + tr_bencDictAddInt ( d, TR_PREFS_KEY_USPEED_KBps, tr_sessionGetSpeedLimit_KBps( s, TR_UP ) ); tr_bencDictAddBool( d, TR_PREFS_KEY_USPEED_ENABLED, tr_sessionIsSpeedLimited( s, TR_UP ) ); tr_bencDictAddInt ( d, TR_PREFS_KEY_UMASK, s->umask ); tr_bencDictAddInt ( d, TR_PREFS_KEY_UPLOAD_SLOTS_PER_TORRENT, s->uploadSlotsPerTorrent ); @@ -471,6 +471,9 @@ onSaveTimer( int foo UNUSED, short bar UNUSED, void * vsession ) tr_torrent * tor = NULL; tr_session * session = vsession; + if( tr_cacheFlushDone( session->cache ) ) + tr_err( "Error while flushing completed pieces from cache" ); + while(( tor = tr_torrentNext( session, tor ))) tr_torrentSave( tor );