From 28b7ba01dc7d79e3793da7a9950ae1d84a75719e Mon Sep 17 00:00:00 2001 From: John Rommel Estropia Date: Thu, 31 Mar 2016 00:04:17 +0900 Subject: [PATCH] prevent deadlock on when DataStack gets deallocated --- Sources/Setup/DataStack.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Sources/Setup/DataStack.swift b/Sources/Setup/DataStack.swift index d41791c..0a900a5 100644 --- a/Sources/Setup/DataStack.swift +++ b/Sources/Setup/DataStack.swift @@ -414,7 +414,16 @@ public final class DataStack { deinit { let coordinator = self.coordinator - coordinator.persistentStores.forEach { _ = try? coordinator.removePersistentStore($0) } + coordinator.performAsynchronously { + + withExtendedLifetime(coordinator) { coordinator in + + coordinator.persistentStores.forEach { + + _ = try? coordinator.removePersistentStore($0) + } + } + } }