Skip to content

Commit 8f205a5

Browse files
author
Oleksandr Poliakov
committed
PR
1 parent 6c9ba6c commit 8f205a5

File tree

8 files changed

+207
-166
lines changed

8 files changed

+207
-166
lines changed

src/MongoDB.Driver/IOperationExecutor.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,28 @@ TResult ExecuteReadOperation<TResult>(
2626
IReadOperation<TResult> operation,
2727
ReadOperationOptions options,
2828
IClientSessionHandle session = null,
29+
bool disableChannelPinning = false,
2930
CancellationToken cancellationToken = default);
3031

3132
Task<TResult> ExecuteReadOperationAsync<TResult>(
3233
IReadOperation<TResult> operation,
3334
ReadOperationOptions options,
3435
IClientSessionHandle session = null,
36+
bool disableChannelPinning = false,
3537
CancellationToken cancellationToken = default);
3638

3739
TResult ExecuteWriteOperation<TResult>(
3840
IWriteOperation<TResult> operation,
3941
WriteOperationOptions options,
4042
IClientSessionHandle session = null,
43+
bool disableChannelPinning = false,
4144
CancellationToken cancellationToken = default);
4245

4346
Task<TResult> ExecuteWriteOperationAsync<TResult>(
4447
IWriteOperation<TResult> operation,
4548
WriteOperationOptions options,
4649
IClientSessionHandle session = null,
50+
bool disableChannelPinning = false,
4751
CancellationToken cancellationToken = default);
4852

4953
IClientSessionHandle StartImplicitSession(CancellationToken cancellationToken);

src/MongoDB.Driver/MongoClient.cs

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ public ClientBulkWriteResult BulkWrite(IReadOnlyList<BulkWriteModel> models, Cli
139139
=> _operationExecutor.ExecuteWriteOperation<ClientBulkWriteResult>(
140140
CreateClientBulkWriteOperation(models, options),
141141
_writeOperationOptions,
142+
disableChannelPinning: true,
142143
cancellationToken: cancellationToken);
143144

144145
/// <inheritdoc/>
@@ -147,7 +148,8 @@ public ClientBulkWriteResult BulkWrite(IClientSessionHandle session, IReadOnlyLi
147148
CreateClientBulkWriteOperation(models, options),
148149
_writeOperationOptions,
149150
Ensure.IsNotNull(session, nameof(session)),
150-
cancellationToken);
151+
disableChannelPinning: true,
152+
cancellationToken: cancellationToken);
151153

152154
/// <inheritdoc/>
153155
public Task<ClientBulkWriteResult> BulkWriteAsync(IReadOnlyList<BulkWriteModel> models, ClientBulkWriteOptions options = null, CancellationToken cancellationToken = default)
@@ -162,7 +164,8 @@ public Task<ClientBulkWriteResult> BulkWriteAsync(IClientSessionHandle session,
162164
CreateClientBulkWriteOperation(models, options),
163165
_writeOperationOptions,
164166
Ensure.IsNotNull(session, nameof(session)),
165-
cancellationToken);
167+
disableChannelPinning: true,
168+
cancellationToken: cancellationToken);
166169

167170
/// <inheritdoc/>
168171
public void Dispose()
@@ -199,6 +202,7 @@ public void DropDatabase(string name, CancellationToken cancellationToken = defa
199202
=> _operationExecutor.ExecuteWriteOperation(
200203
CreateDropDatabaseOperation(name),
201204
_writeOperationOptions,
205+
disableChannelPinning: true,
202206
cancellationToken: cancellationToken);
203207

204208
/// <inheritdoc/>
@@ -207,13 +211,15 @@ public void DropDatabase(IClientSessionHandle session, string name, Cancellation
207211
CreateDropDatabaseOperation(name),
208212
_writeOperationOptions,
209213
Ensure.IsNotNull(session, nameof(session)),
210-
cancellationToken);
214+
disableChannelPinning: true,
215+
cancellationToken: cancellationToken);
211216

212217
/// <inheritdoc/>
213218
public Task DropDatabaseAsync(string name, CancellationToken cancellationToken = default)
214219
=> _operationExecutor.ExecuteWriteOperationAsync(
215220
CreateDropDatabaseOperation(name),
216221
_writeOperationOptions,
222+
disableChannelPinning: true,
217223
cancellationToken: cancellationToken);
218224

219225
/// <inheritdoc/>
@@ -222,7 +228,8 @@ public Task DropDatabaseAsync(IClientSessionHandle session, string name, Cancell
222228
CreateDropDatabaseOperation(name),
223229
_writeOperationOptions,
224230
Ensure.IsNotNull(session, nameof(session)),
225-
cancellationToken);
231+
disableChannelPinning: true,
232+
cancellationToken: cancellationToken);
226233

227234
/// <inheritdoc/>
228235
public IMongoDatabase GetDatabase(string name, MongoDatabaseSettings settings = null)
@@ -305,6 +312,7 @@ public IAsyncCursor<BsonDocument> ListDatabases(CancellationToken cancellationTo
305312
=> _operationExecutor.ExecuteReadOperation(
306313
CreateListDatabaseOperation(null),
307314
_readOperationOptions,
315+
disableChannelPinning: true,
308316
cancellationToken: cancellationToken);
309317

310318
/// <inheritdoc/>
@@ -314,6 +322,7 @@ public IAsyncCursor<BsonDocument> ListDatabases(
314322
=> _operationExecutor.ExecuteReadOperation(
315323
CreateListDatabaseOperation(options),
316324
_readOperationOptions,
325+
disableChannelPinning: true,
317326
cancellationToken: cancellationToken);
318327

319328
/// <inheritdoc/>
@@ -324,7 +333,8 @@ public IAsyncCursor<BsonDocument> ListDatabases(
324333
CreateListDatabaseOperation(null),
325334
_readOperationOptions,
326335
Ensure.IsNotNull(session, nameof(session)),
327-
cancellationToken);
336+
disableChannelPinning: true,
337+
cancellationToken: cancellationToken);
328338

329339
/// <inheritdoc/>
330340
public IAsyncCursor<BsonDocument> ListDatabases(
@@ -335,13 +345,15 @@ public IAsyncCursor<BsonDocument> ListDatabases(
335345
CreateListDatabaseOperation(options),
336346
_readOperationOptions,
337347
Ensure.IsNotNull(session, nameof(session)),
338-
cancellationToken);
348+
disableChannelPinning: true,
349+
cancellationToken: cancellationToken);
339350

340351
/// <inheritdoc/>
341352
public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(CancellationToken cancellationToken = default)
342353
=> _operationExecutor.ExecuteReadOperationAsync(
343354
CreateListDatabaseOperation(null),
344355
_readOperationOptions,
356+
disableChannelPinning: true,
345357
cancellationToken: cancellationToken);
346358

347359
/// <inheritdoc/>
@@ -351,6 +363,7 @@ public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
351363
=> _operationExecutor.ExecuteReadOperationAsync(
352364
CreateListDatabaseOperation(options),
353365
_readOperationOptions,
366+
disableChannelPinning: true,
354367
cancellationToken: cancellationToken);
355368

356369
/// <inheritdoc/>
@@ -361,7 +374,8 @@ public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
361374
CreateListDatabaseOperation(null),
362375
_readOperationOptions,
363376
Ensure.IsNotNull(session, nameof(session)),
364-
cancellationToken);
377+
disableChannelPinning: true,
378+
cancellationToken: cancellationToken);
365379

366380
/// <inheritdoc/>
367381
public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
@@ -372,7 +386,8 @@ public Task<IAsyncCursor<BsonDocument>> ListDatabasesAsync(
372386
CreateListDatabaseOperation(options),
373387
_readOperationOptions,
374388
Ensure.IsNotNull(session, nameof(session)),
375-
cancellationToken);
389+
disableChannelPinning: true,
390+
cancellationToken: cancellationToken);
376391

377392
/// <inheritdoc/>
378393
public IClientSessionHandle StartSession(ClientSessionOptions options = null, CancellationToken cancellationToken = default)
@@ -398,6 +413,7 @@ public IChangeStreamCursor<TResult> Watch<TResult>(
398413
=> _operationExecutor.ExecuteReadOperation(
399414
CreateChangeStreamOperation(pipeline, options),
400415
_readOperationOptions,
416+
disableChannelPinning: true,
401417
cancellationToken: cancellationToken);
402418

403419
/// <inheritdoc/>
@@ -410,7 +426,8 @@ public IChangeStreamCursor<TResult> Watch<TResult>(
410426
CreateChangeStreamOperation(pipeline, options),
411427
_readOperationOptions,
412428
Ensure.IsNotNull(session, nameof(session)),
413-
cancellationToken);
429+
disableChannelPinning: true,
430+
cancellationToken: cancellationToken);
414431

415432
/// <inheritdoc/>
416433
public Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
@@ -420,6 +437,7 @@ public Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
420437
=> _operationExecutor.ExecuteReadOperationAsync(
421438
CreateChangeStreamOperation(pipeline, options),
422439
_readOperationOptions,
440+
disableChannelPinning: true,
423441
cancellationToken: cancellationToken);
424442

425443
/// <inheritdoc/>
@@ -432,7 +450,8 @@ public Task<IChangeStreamCursor<TResult>> WatchAsync<TResult>(
432450
CreateChangeStreamOperation(pipeline, options),
433451
_readOperationOptions,
434452
Ensure.IsNotNull(session, nameof(session)),
435-
cancellationToken);
453+
disableChannelPinning: true,
454+
cancellationToken: cancellationToken);
436455

437456
/// <inheritdoc/>
438457
public IMongoClient WithReadConcern(ReadConcern readConcern)

0 commit comments

Comments
 (0)