aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPDataStorage.m
diff options
context:
space:
mode:
authorMax <post@wickenrode.com>2017-04-18 00:33:14 +0200
committerMax <post@wickenrode.com>2017-04-18 00:33:14 +0200
commite1b881b8f893803c4949a69055c4e8106562327d (patch)
treec4a06dc86700c5fb0e25d47a54061117e0d7f0f1 /Source/SPDataStorage.m
parent4daa0e1419ac63abcfb87b9ba7e9f3db5861a95a (diff)
downloadsequelpro-e1b881b8f893803c4949a69055c4e8106562327d.tar.gz
sequelpro-e1b881b8f893803c4949a69055c4e8106562327d.tar.bz2
sequelpro-e1b881b8f893803c4949a69055c4e8106562327d.zip
Move some code to a place where it makes more sense to be (part of #2770)
(This should not cause any behavioral changes)
Diffstat (limited to 'Source/SPDataStorage.m')
-rw-r--r--Source/SPDataStorage.m12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/SPDataStorage.m b/Source/SPDataStorage.m
index fca33c0a..44c2dc9d 100644
--- a/Source/SPDataStorage.m
+++ b/Source/SPDataStorage.m
@@ -468,6 +468,13 @@ static inline NSMutableArray* SPDataStorageGetEditedRow(NSPointerArray* rowStore
}
}
+- (void) awaitDataDownloaded
+{
+ [dataDownloadedLock lock];
+ while(![self dataDownloaded]) [dataDownloadedLock wait];
+ [dataDownloadedLock unlock];
+}
+
#pragma mark - Delegate callback methods
/**
@@ -479,6 +486,9 @@ static inline NSMutableArray* SPDataStorageGetEditedRow(NSPointerArray* rowStore
[editedRows setCount:(NSUInteger)[resultStore numberOfRows]];
editedRowCount = [editedRows count];
}
+ [dataDownloadedLock lock];
+ [dataDownloadedLock broadcast];
+ [dataDownloadedLock unlock];
}
/**
@@ -492,6 +502,7 @@ static inline NSMutableArray* SPDataStorageGetEditedRow(NSPointerArray* rowStore
dataStorage = nil;
editedRows = nil;
unloadedColumns = NULL;
+ dataDownloadedLock = [NSCondition new];
numberOfColumns = 0;
editedRowCount = 0;
@@ -504,6 +515,7 @@ static inline NSMutableArray* SPDataStorageGetEditedRow(NSPointerArray* rowStore
@synchronized(self) {
SPClear(dataStorage);
SPClear(editedRows);
+ SPClear(dataDownloadedLock);
if (unloadedColumns) {
free(unloadedColumns), unloadedColumns = NULL;
}