allow ListPublisher and ObjectPublisher combine Publishers to cancel subscription from any thread

This commit is contained in:
John Estropia
2021-06-13 14:36:22 +09:00
parent 7938aa2447
commit 798d30bbd9
2 changed files with 24 additions and 2 deletions

View File

@@ -135,8 +135,19 @@ extension ListPublisher {
func cancel() {
self.publisher.removeObserver(self)
self.subscriber = nil
if Thread.isMainThread {
self.publisher.removeObserver(self)
}
else {
DispatchQueue.main.async {
self.publisher.removeObserver(self)
}
}
}

View File

@@ -135,8 +135,19 @@ extension ObjectPublisher {
func cancel() {
self.publisher.removeObserver(self)
self.subscriber = nil
if Thread.isMainThread {
self.publisher.removeObserver(self)
}
else {
DispatchQueue.main.async {
self.publisher.removeObserver(self)
}
}
}