From ed800460a8ac2beeeaa06fa90d12edee39892bbd Mon Sep 17 00:00:00 2001
From: cramakri <cramakri>
Date: Thu, 1 Nov 2012 12:17:29 +0000
Subject: [PATCH] Made the cache sync actually run in a secondary thread.

SVN: 27450
---
 openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.h | 1 +
 openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.m | 5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.h b/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.h
index d6d4a095b73..00ab1fa6f7c 100644
--- a/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.h
+++ b/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.h
@@ -36,6 +36,7 @@
 @property (readonly, strong) NSManagedObjectModel *managedObjectModel;
 @property (readonly, strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;
 @property (readonly, strong) NSEntityDescription *ipadEntityDescription;
+@property (readonly, strong) NSOperationQueue *queue;
 
 
 // Initialization
diff --git a/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.m b/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.m
index 57dcfe2672a..a65d243590e 100644
--- a/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.m
+++ b/openbis-ipad/BisKit/Classes/CISDOBIpadServiceManager.m
@@ -99,6 +99,8 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
     _ipadEntityDescription = [NSEntityDescription entityForName: @"CISDOBIpadEntity" inManagedObjectContext: _managedObjectContext];
     _managedObjectModel = [_ipadEntityDescription managedObjectModel];
     
+    _queue = [[NSOperationQueue alloc] init];
+    
     return self;
 }
 
@@ -110,8 +112,7 @@ static NSManagedObjectContext* GetMainThreadManagedObjectContext(NSURL* storeUrl
         [synchronizer run];
         [synchronizer performSelectorOnMainThread: @selector(notifyCallOfResult:) withObject: nil waitUntilDone: NO];
     };
-    NSBlockOperation *blockOp = [NSBlockOperation blockOperationWithBlock:  syncBlock];
-    [blockOp start];
+    [_queue addOperationWithBlock: syncBlock];
 }
 
 - (CISDOBIpadServiceManagerCall *)managerCallWrappingServiceCall:(CISDOBAsyncCall *)serviceCall pruning:(BOOL)prune
-- 
GitLab