diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPExtendedTableInfo.m | 1 | ||||
-rw-r--r-- | Source/TablesList.m | 8 |
2 files changed, 5 insertions, 4 deletions
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; } } |