Skip to content

Commit 20a894b

Browse files
committed
Added MainActorSharingStrategyProtocol to allow shared sequences which are not limited to the main actor.
1 parent 9cee95e commit 20a894b

File tree

8 files changed

+642
-96
lines changed

8 files changed

+642
-96
lines changed

Rx.xcodeproj/project.pbxproj

+8-4
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,6 @@
651651
C89AB1DA1DAAC3350065FBE6 /* Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1B11DAAC3350065FBE6 /* Driver.swift */; };
652652
C89AB1DE1DAAC3350065FBE6 /* ObservableConvertibleType+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1B21DAAC3350065FBE6 /* ObservableConvertibleType+Driver.swift */; };
653653
C89AB1EA1DAAC3350065FBE6 /* SharedSequence+Operators+arity.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1B61DAAC3350065FBE6 /* SharedSequence+Operators+arity.swift */; };
654-
C89AB1F21DAAC3350065FBE6 /* SharedSequence+Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1B81DAAC3350065FBE6 /* SharedSequence+Operators.swift */; };
655654
C89AB1F61DAAC3350065FBE6 /* SharedSequence.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1B91DAAC3350065FBE6 /* SharedSequence.swift */; };
656655
C89AB2021DAAC3350065FBE6 /* KVORepresentable+CoreGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1BD1DAAC3350065FBE6 /* KVORepresentable+CoreGraphics.swift */; };
657656
C89AB2061DAAC3350065FBE6 /* KVORepresentable+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89AB1BE1DAAC3350065FBE6 /* KVORepresentable+Swift.swift */; };
@@ -789,6 +788,8 @@
789788
CB883B451BE256D4000AC2EE /* BooleanDisposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB883B441BE256D4000AC2EE /* BooleanDisposable.swift */; };
790789
CD8F7AC527BA9187001574EB /* Infallible+Driver.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD8F7AC427BA9187001574EB /* Infallible+Driver.swift */; };
791790
CDDEF16A1D4FB40000CA8546 /* Disposables.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDEF1691D4FB40000CA8546 /* Disposables.swift */; };
791+
D2B78EEC2CCF9F8B0054AB01 /* SharedSequence+Operators.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2B78EEB2CCF9F8B0054AB01 /* SharedSequence+Operators.swift */; };
792+
D2B78EEE2CCF9FDD0054AB01 /* SharedSequence+Operators+MainActor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2B78EED2CCF9FDD0054AB01 /* SharedSequence+Operators+MainActor.swift */; };
792793
D9080ACF1EA05AE0002B433B /* RxNavigationControllerDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9080ACD1EA05A16002B433B /* RxNavigationControllerDelegateProxy.swift */; };
793794
D9080AD41EA05DE9002B433B /* UINavigationController+Rx.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9080AD21EA05DDF002B433B /* UINavigationController+Rx.swift */; };
794795
D9080AD81EA06189002B433B /* UINavigationController+RxTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9080AD71EA06189002B433B /* UINavigationController+RxTests.swift */; };
@@ -1353,7 +1354,6 @@
13531354
C89AB1B21DAAC3350065FBE6 /* ObservableConvertibleType+Driver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ObservableConvertibleType+Driver.swift"; sourceTree = "<group>"; };
13541355
C89AB1B61DAAC3350065FBE6 /* SharedSequence+Operators+arity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Operators+arity.swift"; sourceTree = "<group>"; };
13551356
C89AB1B71DAAC3350065FBE6 /* SharedSequence+Operators+arity.tt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "SharedSequence+Operators+arity.tt"; sourceTree = "<group>"; };
1356-
C89AB1B81DAAC3350065FBE6 /* SharedSequence+Operators.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Operators.swift"; sourceTree = "<group>"; };
13571357
C89AB1B91DAAC3350065FBE6 /* SharedSequence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SharedSequence.swift; sourceTree = "<group>"; };
13581358
C89AB1BD1DAAC3350065FBE6 /* KVORepresentable+CoreGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "KVORepresentable+CoreGraphics.swift"; sourceTree = "<group>"; };
13591359
C89AB1BE1DAAC3350065FBE6 /* KVORepresentable+Swift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "KVORepresentable+Swift.swift"; sourceTree = "<group>"; };
@@ -1453,6 +1453,8 @@
14531453
CB883B441BE256D4000AC2EE /* BooleanDisposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BooleanDisposable.swift; sourceTree = "<group>"; };
14541454
CD8F7AC427BA9187001574EB /* Infallible+Driver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Infallible+Driver.swift"; sourceTree = "<group>"; };
14551455
CDDEF1691D4FB40000CA8546 /* Disposables.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Disposables.swift; sourceTree = "<group>"; };
1456+
D2B78EEB2CCF9F8B0054AB01 /* SharedSequence+Operators.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Operators.swift"; sourceTree = "<group>"; };
1457+
D2B78EED2CCF9FDD0054AB01 /* SharedSequence+Operators+MainActor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SharedSequence+Operators+MainActor.swift"; sourceTree = "<group>"; };
14561458
D9080ACD1EA05A16002B433B /* RxNavigationControllerDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RxNavigationControllerDelegateProxy.swift; sourceTree = "<group>"; };
14571459
D9080AD21EA05DDF002B433B /* UINavigationController+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationController+Rx.swift"; sourceTree = "<group>"; };
14581460
D9080AD71EA06189002B433B /* UINavigationController+RxTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationController+RxTests.swift"; sourceTree = "<group>"; };
@@ -2346,7 +2348,8 @@
23462348
children = (
23472349
C89AB1B61DAAC3350065FBE6 /* SharedSequence+Operators+arity.swift */,
23482350
C89AB1B71DAAC3350065FBE6 /* SharedSequence+Operators+arity.tt */,
2349-
C89AB1B81DAAC3350065FBE6 /* SharedSequence+Operators.swift */,
2351+
D2B78EEB2CCF9F8B0054AB01 /* SharedSequence+Operators.swift */,
2352+
D2B78EED2CCF9FDD0054AB01 /* SharedSequence+Operators+MainActor.swift */,
23502353
DB08833626FB0637005805BE /* SharedSequence+Concurrency.swift */,
23512354
C89AB1B91DAAC3350065FBE6 /* SharedSequence.swift */,
23522355
C85E6FBD1F53025700C5681E /* SchedulerType+SharedSequence.swift */,
@@ -3045,6 +3048,7 @@
30453048
B562478F203515DD00D3EE75 /* RxCollectionViewDataSourcePrefetchingProxy.swift in Sources */,
30463049
84E4D3921C9AFD3400ADFDC9 /* UISearchController+Rx.swift in Sources */,
30473050
C88254341B8A752B00B02D69 /* UITableView+Rx.swift in Sources */,
3051+
D2B78EEC2CCF9F8B0054AB01 /* SharedSequence+Operators.swift in Sources */,
30483052
CD8F7AC527BA9187001574EB /* Infallible+Driver.swift in Sources */,
30493053
C89AB1A61DAAC25A0065FBE6 /* RxCocoaObjCRuntimeError+Extensions.swift in Sources */,
30503054
C88254161B8A752B00B02D69 /* RxCollectionViewReactiveArrayDataSource.swift in Sources */,
@@ -3080,7 +3084,6 @@
30803084
C89AB1CA1DAAC3350065FBE6 /* ControlProperty.swift in Sources */,
30813085
ECBBA59E1DF8C0D400DDDC2E /* RxTabBarControllerDelegateProxy.swift in Sources */,
30823086
78F2D93E24C8D35700D13F0C /* RxWKNavigationDelegateProxy.swift in Sources */,
3083-
C89AB1F21DAAC3350065FBE6 /* SharedSequence+Operators.swift in Sources */,
30843087
9BA1CBD31C0F7D550044B50A /* UIActivityIndicatorView+Rx.swift in Sources */,
30853088
842A5A2C1C357F92003568D5 /* NSTextStorage+Rx.swift in Sources */,
30863089
C88254241B8A752B00B02D69 /* RxTextViewDelegateProxy.swift in Sources */,
@@ -3098,6 +3101,7 @@
30983101
C89AB2501DAAC3A60065FBE6 /* _RXObjCRuntime.m in Sources */,
30993102
C89AB21E1DAAC3350065FBE6 /* NSObject+Rx.swift in Sources */,
31003103
D9080AD41EA05DE9002B433B /* UINavigationController+Rx.swift in Sources */,
3104+
D2B78EEE2CCF9FDD0054AB01 /* SharedSequence+Operators+MainActor.swift in Sources */,
31013105
88718CFE1CE5D80000D88D60 /* UITabBar+Rx.swift in Sources */,
31023106
88D98F2E1CE7549A00D50457 /* RxTabBarDelegateProxy.swift in Sources */,
31033107
C88254331B8A752B00B02D69 /* UISwitch+Rx.swift in Sources */,

RxCocoa/Traits/Driver/Driver.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import RxSwift
3737
*/
3838
public typealias Driver<Element> = SharedSequence<DriverSharingStrategy, Element>
3939

40-
public struct DriverSharingStrategy: SharingStrategyProtocol {
40+
public struct DriverSharingStrategy: MainActorSharingStrategyProtocol {
4141
public static var scheduler: SchedulerType { SharingScheduler.make() }
4242
public static func share<Element>(_ source: Observable<Element>) -> Observable<Element> {
4343
source.share(replay: 1, scope: .whileConnected)

0 commit comments

Comments
 (0)