Skip to content

Instantly share code, notes, and snippets.

@bradya
Created January 28, 2015 05:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradya/699e0a6250e0a4e2bc41 to your computer and use it in GitHub Desktop.
Save bradya/699e0a6250e0a4e2bc41 to your computer and use it in GitHub Desktop.
Clearing queues
+ (void)pauseAndEmptyQueues
{
NSOperationQueue *mainOperationQueue = [[SLKDataRepository sharedRepository] mainOperationQueue];
NSOperationQueue *backgroundOperationQueue = [[SLKDataRepository sharedRepository] backgroundOperationQueue];
NSOperationQueue *readOperationQueue = [[SLKDataRepository sharedRepository] readOperationQueue];
[mainOperationQueue setSuspended:YES];
[backgroundOperationQueue setSuspended:YES];
[readOperationQueue setSuspended:YES];
[mainOperationQueue cancelAllOperations];
[backgroundOperationQueue cancelAllOperations];
[readOperationQueue cancelAllOperations];
[mainOperationQueue waitUntilAllOperationsAreFinished];
[backgroundOperationQueue waitUntilAllOperationsAreFinished];
[readOperationQueue waitUntilAllOperationsAreFinished];
}
+ (void)restartQueues
{
NSOperationQueue *mainOperationQueue = [[SLKDataRepository sharedRepository] mainOperationQueue];
NSOperationQueue *backgroundOperationQueue = [[SLKDataRepository sharedRepository] backgroundOperationQueue];
NSOperationQueue *readOperationQueue = [[SLKDataRepository sharedRepository] readOperationQueue];
[mainOperationQueue setSuspended:NO];
[backgroundOperationQueue setSuspended:NO];
[readOperationQueue setSuspended:NO];
}
+ (BOOL)addPersistentStoreForAccount:(SLKAccount *)account coordinator:(NSPersistentStoreCoordinator *)coordinator
{
[self pauseAndEmptyQueues];
BOOL result = [self configureStoreForAccount:account coordinator:coordinator];
[self restartQueues];
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment