@@ -73,7 +73,7 @@ - (instancetype)initWithDatabaseInfo:(const DatabaseInfo &)databaseInfo
73
73
credentialsProvider :
74
74
(CredentialsProvider *)credentialsProvider // no passing ownership
75
75
userExecutor : (std::unique_ptr<Executor>)userExecutor
76
- workerQueue : (AsyncQueue * )queue NS_DESIGNATED_INITIALIZER;
76
+ workerQueue : (std::unique_ptr< AsyncQueue> )queue NS_DESIGNATED_INITIALIZER;
77
77
78
78
@property (nonatomic , assign , readonly ) const DatabaseInfo *databaseInfo;
79
79
@property (nonatomic , strong , readonly ) FSTEventManager *eventManager;
@@ -89,12 +89,12 @@ - (instancetype)initWithDatabaseInfo:(const DatabaseInfo &)databaseInfo
89
89
90
90
@implementation FSTFirestoreClient {
91
91
/* *
92
- * Dispatch queue responsible for all of our internal processing. When we get incoming work from
92
+ * Async queue responsible for all of our internal processing. When we get incoming work from
93
93
* the user (via public API) or the network (incoming gRPC messages), we should always dispatch
94
94
* onto this queue. This ensures our internal data structures are never accessed from multiple
95
95
* threads simultaneously.
96
96
*/
97
- AsyncQueue * _workerQueue;
97
+ std::unique_ptr< AsyncQueue> _workerQueue;
98
98
99
99
std::unique_ptr<Executor> _userExecutor;
100
100
}
@@ -108,40 +108,39 @@ + (instancetype)clientWithDatabaseInfo:(const DatabaseInfo &)databaseInfo
108
108
credentialsProvider :
109
109
(CredentialsProvider *)credentialsProvider // no passing ownership
110
110
userExecutor : (std::unique_ptr<Executor>)userExecutor
111
- workerQueue : (AsyncQueue * )workerQueue {
111
+ workerQueue : (std::unique_ptr< AsyncQueue> )workerQueue {
112
112
return [[FSTFirestoreClient alloc ] initWithDatabaseInfo: databaseInfo
113
113
usePersistence: usePersistence
114
114
credentialsProvider: credentialsProvider
115
115
userExecutor:std: :move (userExecutor)
116
- workerQueue: workerQueue];
116
+ workerQueue:std: : move ( workerQueue) ];
117
117
}
118
118
119
119
- (instancetype )initWithDatabaseInfo : (const DatabaseInfo &)databaseInfo
120
120
usePersistence : (BOOL )usePersistence
121
121
credentialsProvider :
122
122
(CredentialsProvider *)credentialsProvider // no passing ownership
123
123
userExecutor : (std::unique_ptr<Executor>)userExecutor
124
- workerQueue : (AsyncQueue * )workerQueue {
124
+ workerQueue : (std::unique_ptr< AsyncQueue> )workerQueue {
125
125
if (self = [super init ]) {
126
126
_databaseInfo = databaseInfo;
127
127
_credentialsProvider = credentialsProvider;
128
128
_userExecutor = std::move (userExecutor);
129
- _workerQueue = workerQueue;
129
+ _workerQueue = std::move ( workerQueue) ;
130
130
131
131
auto userPromise = std::make_shared<std::promise<User>>();
132
132
bool initialized = false ;
133
133
134
134
__weak __typeof__ (self) weakSelf = self;
135
- auto credentialChangeListener = [self , initialized, userPromise, weakSelf,
136
- workerQueue ](User user) mutable {
135
+ auto credentialChangeListener = [initialized, userPromise, weakSelf](User user) mutable {
137
136
__typeof__ (self) strongSelf = weakSelf;
138
137
if (!strongSelf) return ;
139
138
140
139
if (!initialized) {
141
140
initialized = true ;
142
141
userPromise->set_value (user);
143
142
} else {
144
- _workerQueue->Enqueue ([=] { [strongSelf credentialDidChangeWithUser: user]; });
143
+ strongSelf-> _workerQueue ->Enqueue ([=] { [strongSelf credentialDidChangeWithUser: user]; });
145
144
}
146
145
};
147
146
@@ -193,12 +192,12 @@ - (void)initializeWithUser:(const User &)user usePersistence:(BOOL)usePersistenc
193
192
_localStore = [[FSTLocalStore alloc ] initWithPersistence: _persistence initialUser: user];
194
193
195
194
FSTDatastore *datastore = [FSTDatastore datastoreWithDatabase: self .databaseInfo
196
- workerQueue: _workerQueue
195
+ workerQueue: _workerQueue. get ()
197
196
credentials: _credentialsProvider];
198
197
199
198
_remoteStore = [[FSTRemoteStore alloc ] initWithLocalStore: _localStore
200
199
datastore: datastore
201
- workerQueue: _workerQueue];
200
+ workerQueue: _workerQueue. get () ];
202
201
203
202
_syncEngine = [[FSTSyncEngine alloc ] initWithLocalStore: _localStore
204
203
remoteStore: _remoteStore
@@ -366,7 +365,7 @@ - (void)transactionWithRetries:(int)retries
366
365
_workerQueue->Enqueue ([=] {
367
366
[self .syncEngine
368
367
transactionWithRetries: retries
369
- workerQueue: _workerQueue
368
+ workerQueue: _workerQueue. get ()
370
369
updateBlock: updateBlock
371
370
completion: ^(id _Nullable result, NSError *_Nullable error) {
372
371
// Dispatch the result back onto the user dispatch queue.
0 commit comments