From cd0ac7f9878e2649846e46f559a7ba5ee3047e72 Mon Sep 17 00:00:00 2001 From: rowanbeentje Date: Mon, 16 Nov 2009 22:48:49 +0000 Subject: - Make some thread safety improvements to try to address Issue #460 --- Source/SPExtendedTableInfo.m | 1 + Source/TablesList.m | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) (limited to 'Source') diff --git a/Source/SPExtendedTableInfo.m b/Source/SPExtendedTableInfo.m index 7140320e..9a84286e 100644 --- a/Source/SPExtendedTableInfo.m +++ b/Source/SPExtendedTableInfo.m @@ -177,6 +177,7 @@ * Load all the info for the supplied table by querying the table data instance and updaing the interface * elements accordingly. * Note that interface elements are also toggled in start/endDocumentTaskForTab:, with similar logic. + * Due to the large quantity of interface interaction in this function it is not thread-safe. */ - (void)loadTable:(NSString *)table { diff --git a/Source/TablesList.m b/Source/TablesList.m index cb4959f5..72f7afce 100644 --- a/Source/TablesList.m +++ b/Source/TablesList.m @@ -629,7 +629,7 @@ [tableSourceInstance loadTable:nil]; [tableContentInstance loadTable:nil]; - [extendedTableInfoInstance loadTable:nil]; + [extendedTableInfoInstance performSelectorOnMainThread:@selector(loadTable:) withObject:nil waitUntilDone:YES]; structureLoaded = NO; contentLoaded = NO; statusLoaded = NO; @@ -773,7 +773,7 @@ contentLoaded = YES; statusLoaded = NO; } else if ( [tabView indexOfTabViewItem:[tabView selectedTabViewItem]] == 3 ) { - [extendedTableInfoInstance loadTable:selectedTableName]; + [extendedTableInfoInstance performSelectorOnMainThread:@selector(loadTable:) withObject:selectedTableName waitUntilDone:YES]; structureLoaded = NO; contentLoaded = NO; statusLoaded = YES; @@ -787,7 +787,7 @@ // if we are not looking at a table or view, clear these [tableSourceInstance loadTable:nil]; [tableContentInstance loadTable:nil]; - [extendedTableInfoInstance loadTable:nil]; + [extendedTableInfoInstance performSelectorOnMainThread:@selector(loadTable:) withObject:nil waitUntilDone:YES]; structureLoaded = NO; contentLoaded = NO; statusLoaded = NO; @@ -1450,7 +1450,7 @@ } if ( ([tabView indexOfTabViewItem:[tabView selectedTabViewItem]] == 3) && !statusLoaded ) { - [extendedTableInfoInstance loadTable:selectedTableName]; + [extendedTableInfoInstance performSelectorOnMainThread:@selector(loadTable:) withObject:selectedTableName waitUntilDone:YES]; statusLoaded = YES; } } -- cgit v1.2.3