From d2237c05664461e086664d25fbe717a06e9b5b75 Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Tue, 15 May 2012 23:40:08 +0000 Subject: Improve connection keepalive, disconnect, and connection loss after reviewing crash logs and testing a number of situations: - Improve stability of closing connections after a connection loss - Minimise prompting a user for connection state restore if closing windows/tabs - Allow cancellation of keepalive ping threads to prevent crashes after deallocation of parent - Manually handle ping thread state struct memory to avoid cross-thread deallocation issues - Improve disconnection speed and resilience --- Source/SPDatabaseDocument.m | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'Source/SPDatabaseDocument.m') diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m index 75af2ed1..f8f1585b 100644 --- a/Source/SPDatabaseDocument.m +++ b/Source/SPDatabaseDocument.m @@ -3961,12 +3961,14 @@ static NSString *SPRenameDatabaseAction = @"SPRenameDatabase"; // edits in progress in various views. if ( ![tablesListInstance selectionShouldChangeInTableView:nil] ) return NO; - // Auto-save spf file based connection and return whether the save was successful + // Auto-save spf file based connection and return if the save was not successful if([self fileURL] && [[[self fileURL] path] length] && ![self isUntitled]) { BOOL isSaved = [self saveDocumentWithFilePath:nil inBackground:YES onlyPreferences:YES contextInfo:nil]; - if(isSaved) + if (isSaved) { [[SPQueryController sharedQueryController] removeRegisteredDocumentWithFileURL:[self fileURL]]; - return isSaved; + } else { + return NO; + } } // Terminate all running BASH commands -- cgit v1.2.3