File tree Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ Changelog
2
2
=========
3
3
4
4
- added ` reachedBottom(offset:) ` for ` UIScrollView `
5
+ - ` once ` now uses a ` NSRecursiveLock ` instead of the deprecated ` OSAtomicOr32OrigBarrier `
5
6
6
7
5.0.0
7
8
-----
Original file line number Diff line number Diff line change @@ -25,12 +25,15 @@ extension Observable {
25
25
*/
26
26
27
27
public static func once( _ element: Element ) -> Observable < Element > {
28
- var delivered : UInt32 = 0
28
+ let lock = NSRecursiveLock ( )
29
+ var isDelivered = false
29
30
return create { observer in
30
- let wasDelivered = OSAtomicOr32OrigBarrier ( 1 , & delivered )
31
- if wasDelivered == 0 {
31
+ lock . lock ( )
32
+ if !isDelivered {
32
33
observer. onNext ( element)
33
34
}
35
+ isDelivered = true
36
+ lock. unlock ( )
34
37
observer. onCompleted ( )
35
38
return Disposables . create ( )
36
39
}
You can’t perform that action at this time.
0 commit comments