From 5a531bc5343f35ce5396b21bd707174f3477fb71 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 21 Apr 2018 01:17:16 +0200 Subject: Fix a race reported by ThreadSanitizer --- Source/SPTableContent.m | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'Source') diff --git a/Source/SPTableContent.m b/Source/SPTableContent.m index 72bdb8e1..b928118f 100644 --- a/Source/SPTableContent.m +++ b/Source/SPTableContent.m @@ -985,11 +985,13 @@ static NSString *SPTableFilterSetDefaultOperator = @"SPTableFilterSetDefaultOper // Update the rows count as necessary [self updateNumberOfRows]; - // Set the filter text - [self updateCountText]; - - // Update pagination - [[self onMainThread] updatePaginationState]; + SPMainQSync(^{ + // Set the filter text + [self updateCountText]; + + // Update pagination + [self updatePaginationState]; + }); // Retrieve and cache the column definitions for editing views if (cqColumnDefinition) [cqColumnDefinition release]; @@ -1163,6 +1165,8 @@ static NSString *SPTableFilterSetDefaultOperator = @"SPTableFilterSetDefaultOper /** * Update the table count/selection text + * + * MUST BE CALLED ON THE UI THREAD! */ - (void)updateCountText { @@ -1208,7 +1212,7 @@ static NSString *SPTableFilterSetDefaultOperator = @"SPTableFilterSetDefaultOper } // If rows are selected, append selection count - NSInteger selectedRows = [[tableContentView onMainThread] numberOfSelectedRows]; // -numberOfSelectedRows is a UI method! + NSInteger selectedRows = [tableContentView numberOfSelectedRows]; // -numberOfSelectedRows is a UI method! if (selectedRows > 0) { [countString appendString:@"; "]; if (selectedRows == 1) @@ -1219,7 +1223,7 @@ static NSString *SPTableFilterSetDefaultOperator = @"SPTableFilterSetDefaultOper } #ifndef SP_CODA - [[countText onMainThread] setStringValue:countString]; + [countText setStringValue:countString]; #endif } -- cgit v1.2.3