CoreData死锁与后台线程

时间:2013-07-11 15:28:56

标签: multithreading core-data

我正在使用经典的多个MOC共享相同的NSPersistentStoreCoordinator,据我所知它比父/子上下文表现得更好: http://floriankugler.com/blog/2013/4/29/concurrent-core-data-stack-performance-shootout

我非常谨慎地创建上下文并在创建它们的线程/队列上使用它们。

僵局就是这样:

主线程正在执行获取请求并挂在[NSManagedObjectContext executeFetchRequest:error:]

中的互斥锁上
#0 0x3ad840fc in __psynch_mutexwait ()
#1 0x3accd128 in pthread_mutex_lock ()
#2 0x328eee90 in -[_PFLock lock] ()
#3 0x328ff350 in -[NSPersistentStoreCoordinator executeRequest:withContext:error:] ()
#4 0x328fdf16 in -[NSManagedObjectContext executeFetchRequest:error:] ()

后台线程挂在我在调用[coordinator managedObjectIDForURIRepresentation:objector]之前放在持久性存储协调器上的锁上。

#0 0x3ad840fc in __psynch_mutexwait ()
#1 0x3accd128 in pthread_mutex_lock ()
#2 0x328eee90 in -[_PFLock lock] ()
#3 0x00093180 in -[DataManager getObjectByUri:context:] 

我知道这很难从帖子调试,但任何想法都会非常感激。顺便说一句......这很少发生。

0 个答案:

没有答案