Skip to content

Commit 8661a85

Browse files
committed
Revert "Make observers array Thread Safe"
This reverts commit 2d01474.
1 parent 0256d06 commit 8661a85

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

ExampleMVVM/Presentation/Utils/Observable.swift

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@
77

88
import Foundation
99

10-
final public class Observable<Value> {
10+
public final class Observable<Value> {
1111

12-
private struct Observer<Value> {
12+
struct Observer<Value> {
1313
weak var observer: AnyObject?
1414
let block: (Value) -> Void
1515
}
1616

17-
// To make observers array Thread Safe
18-
private let queue = DispatchQueue(label: "ObservableQueue", attributes: .concurrent)
1917
private var observers = [Observer<Value>]()
2018

2119
public var value: Value {
@@ -27,23 +25,17 @@ final public class Observable<Value> {
2725
}
2826

2927
public func observe(on observer: AnyObject, observerBlock: @escaping (Value) -> Void) {
30-
queue.async(flags: .barrier) {
31-
self.observers.append(Observer(observer: observer, block: observerBlock))
32-
DispatchQueue.main.async { observerBlock(self.value) }
33-
}
28+
observers.append(Observer(observer: observer, block: observerBlock))
29+
DispatchQueue.main.async { observerBlock(self.value) }
3430
}
3531

3632
public func remove(observer: AnyObject) {
37-
queue.async(flags: .barrier) {
38-
self.observers = self.observers.filter { $0.observer !== observer }
39-
}
33+
observers = observers.filter { $0.observer !== observer }
4034
}
4135

4236
private func notifyObservers() {
43-
queue.sync() {
44-
for observer in self.observers {
45-
DispatchQueue.main.async { observer.block(self.value) }
46-
}
37+
for observer in observers {
38+
DispatchQueue.main.async { observer.block(self.value) }
4739
}
4840
}
4941
}

0 commit comments

Comments
 (0)