From 10fb28ad4c5556d1bbb2559f67ef8be148452687 Mon Sep 17 00:00:00 2001 From: Mitchell Livingston Date: Sat, 26 May 2007 06:16:43 +0000 Subject: [PATCH] add ability to start next transfer in queue if one becomes stalled --- macosx/Controller.m | 2 +- macosx/Defaults.plist | 4 ++ .../English.lproj/PrefsWindow.nib/classes.nib | 3 ++ macosx/English.lproj/PrefsWindow.nib/info.nib | 4 +- .../PrefsWindow.nib/keyedobjects.nib | Bin 47388 -> 49296 bytes macosx/PrefsController.h | 5 +- macosx/PrefsController.m | 23 ++++++++- macosx/Torrent.h | 5 +- macosx/Torrent.m | 48 +++++++++++++----- 9 files changed, 74 insertions(+), 20 deletions(-) diff --git a/macosx/Controller.m b/macosx/Controller.m index e58afc94b..39a6ae35e 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -1343,7 +1343,7 @@ static void sleepCallBack(void * controller, io_service_t y, natural_t messageTy { enumerator = [fTorrents objectEnumerator]; while ((torrent = [enumerator nextObject])) - if ([torrent isActive] && ![torrent isError]) + if ([torrent isActive] && ![torrent isStalled] && ![torrent isError]) { if ([torrent allDownloaded]) desiredSeedActive--; diff --git a/macosx/Defaults.plist b/macosx/Defaults.plist index 85f786d27..9576a34c8 100644 --- a/macosx/Defaults.plist +++ b/macosx/Defaults.plist @@ -24,6 +24,8 @@ CheckRemoveDownloading + CheckStalled + CheckUpload DeleteOriginalTorrent @@ -98,6 +100,8 @@ 10 SpeedLimitUploadLimit 10 + StalledSeconds + 300 StatusBar UpdateCheck diff --git a/macosx/English.lproj/PrefsWindow.nib/classes.nib b/macosx/English.lproj/PrefsWindow.nib/classes.nib index d2b94f387..0bf38b9be 100644 --- a/macosx/English.lproj/PrefsWindow.nib/classes.nib +++ b/macosx/English.lproj/PrefsWindow.nib/classes.nib @@ -25,6 +25,8 @@ setRatioStop = id; setSound = id; setSpeedLimit = id; + setStalled = id; + setStalledSeconds = id; setUpdate = id; }; CLASS = PrefsController; @@ -51,6 +53,7 @@ fSeedingSoundPopUp = NSPopUpButton; fSpeedLimitDownloadField = NSTextField; fSpeedLimitUploadField = NSTextField; + fStalledField = NSTextField; fTransfersView = NSView; fUpdatePopUp = NSPopUpButton; fUploadField = NSTextField; diff --git a/macosx/English.lproj/PrefsWindow.nib/info.nib b/macosx/English.lproj/PrefsWindow.nib/info.nib index 0e2a3759b..fff0485c7 100644 --- a/macosx/English.lproj/PrefsWindow.nib/info.nib +++ b/macosx/English.lproj/PrefsWindow.nib/info.nib @@ -7,11 +7,11 @@ IBEditorPositions 153 - 206 273 563 268 0 0 1152 842 + 294 444 563 268 0 0 1152 842 28 294 421 563 313 0 0 1152 842 41 - 294 425 563 305 0 0 1152 842 + 70 441 563 305 0 0 1152 842 66 294 506 563 144 0 0 1152 842 diff --git a/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib b/macosx/English.lproj/PrefsWindow.nib/keyedobjects.nib index b63661b012beecab73cd86148ddf8e109b17fec8..6a0d2f3e27f38a4814136792e72abe4d49c77fd3 100644 GIT binary patch literal 49296 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 status string") stringByAppendingString: - [self errorMessage]]]; - } - + //check for error BOOL wasError = fError; - if ((fError = fStat->cannotConnect)) - { - if (!wasError && [self isActive]) - [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self]; - } + if ((fError = [self isError])) + [statusString setString: [NSLocalizedString(@"Error: ", "Torrent -> status string") + stringByAppendingString: [self errorMessage]]]; + + //check if stalled + BOOL wasStalled = fStalled; + fStalled = [fDefaults boolForKey: @"CheckStalled"] + && [fDefaults integerForKey: @"StalledSeconds"] < [self stalledSeconds]; + if (!fError && fStalled) + [statusString setString: [NSLocalizedString(@"Stalled, ", "Torrent -> status string") + stringByAppendingString: statusString]]; + + //update queue for checking (from downloading to seeding), stalled, or error + if ((wasChecking && !fChecking) || (!wasStalled && fStalled) || (!wasError && fError && [self isActive])) + [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self]; if ([self isActive] && fStat->status != TR_STATUS_CHECK ) { @@ -1355,6 +1357,24 @@ static uint32_t kRed = BE(0xFF6450FF), //255, 100, 80 return date > 0 ? [NSDate dateWithTimeIntervalSince1970: date] : fDateActivity; } +- (int) stalledSeconds +{ + if (![self isActive]) + return -1; + + NSDate * started = [NSDate dateWithTimeIntervalSince1970: fStat->startDate / 1000], + * activity = [self dateActivity]; + if (!activity || [started compare: activity] == NSOrderedDescending) + return -1.0 * [started timeIntervalSinceNow]; + else + return -1.0 * [activity timeIntervalSinceNow]; +} + +- (BOOL) isStalled +{ + return fStalled; +} + - (NSNumber *) stateSortKey { if (![self isActive])