From 44cfbebedb7def15bc599cfbd5e1e5238e97a9c2 Mon Sep 17 00:00:00 2001 From: John Rommel Estropia Date: Fri, 1 Apr 2016 01:28:39 +0900 Subject: [PATCH] prevent deadlock on when DataStack gets deallocated --- CoreStore/Setting Up/DataStack.swift | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/CoreStore/Setting Up/DataStack.swift b/CoreStore/Setting Up/DataStack.swift index 551ba4e..0b1ba57 100644 --- a/CoreStore/Setting Up/DataStack.swift +++ b/CoreStore/Setting Up/DataStack.swift @@ -399,9 +399,16 @@ public final class DataStack { deinit { - for store in self.coordinator.persistentStores { + let coordinator = self.coordinator + coordinator.performAsynchronously { - _ = try? self.coordinator.removePersistentStore(store) + withExtendedLifetime(coordinator) { coordinator in + + coordinator.persistentStores.forEach { + + _ = try? coordinator.removePersistentStore($0) + } + } } } }