From 7c013c61c1464655fe8babf76d5ab5922e430b2a Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Thu, 11 Feb 2010 04:07:13 +0000 Subject: [PATCH] (trunk libT) tweak the shutdown code --- libtransmission/session.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libtransmission/session.c b/libtransmission/session.c index 00d4ba9b2..3255abb40 100644 --- a/libtransmission/session.c +++ b/libtransmission/session.c @@ -1507,9 +1507,9 @@ sessionCloseImpl( void * vsession ) } static int -deadlineReached( const uint64_t deadline ) +deadlineReached( const time_t deadline ) { - return tr_date( ) >= deadline; + return time( NULL ) >= deadline; } #define SHUTDOWN_MAX_SECONDS 20 @@ -1517,8 +1517,7 @@ deadlineReached( const uint64_t deadline ) void tr_sessionClose( tr_session * session ) { - const int maxwait_msec = SHUTDOWN_MAX_SECONDS * 1000; - const uint64_t deadline = tr_date( ) + maxwait_msec; + const time_t deadline = time( NULL ) + SHUTDOWN_MAX_SECONDS; assert( tr_isSession( session ) ); @@ -1550,11 +1549,14 @@ tr_sessionClose( tr_session * session ) { static tr_bool forced = FALSE; dbgmsg( "waiting for libtransmission thread to finish" ); - tr_wait_msec( 100 ); + tr_wait_msec( 500 ); if( deadlineReached( deadline ) && !forced ) { event_loopbreak( ); forced = TRUE; + + if( time( NULL ) >= deadline + 3 ) + break; } }