File tree Expand file tree Collapse file tree 3 files changed +16
-8
lines changed
tests/MongoDB.Driver.Core.Tests/Core Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ public class BinaryConnection_CommandEventTests : IDisposable
42
42
private DnsEndPoint _endPoint ;
43
43
private EventCapturer _capturedEvents ;
44
44
private MessageEncoderSettings _messageEncoderSettings = new MessageEncoderSettings ( ) ;
45
- private Stream _stream ;
45
+ private BlockingMemoryStream _stream ;
46
46
private Mock < IStreamFactory > _mockStreamFactory ;
47
47
private BinaryConnection _subject ;
48
48
private IDisposable _operationIdDisposer ;
Original file line number Diff line number Diff line change @@ -50,6 +50,11 @@ public override long Length
50
50
}
51
51
}
52
52
53
+ public object Lock
54
+ {
55
+ get { return _lock ; }
56
+ }
57
+
53
58
public override long Position
54
59
{
55
60
get
Original file line number Diff line number Diff line change @@ -272,16 +272,19 @@ public static List<BsonDocument> TranslateMessagesToBsonDocuments(byte[] bytes)
272
272
return TranslateMessagesToBsonDocuments ( TranslateBytesToRequests ( bytes ) ) ;
273
273
}
274
274
275
- public static void WriteResponsesToStream ( Stream stream , IEnumerable < ResponseMessage > responses )
275
+ public static void WriteResponsesToStream ( BlockingMemoryStream stream , IEnumerable < ResponseMessage > responses )
276
276
{
277
- var startPosition = stream . Position ;
278
- foreach ( var response in responses )
277
+ lock ( stream . Lock )
279
278
{
280
- var encoderFactory = new BinaryMessageEncoderFactory ( stream , null ) ;
281
- var encoder = response . GetEncoder ( encoderFactory ) ;
282
- encoder . WriteMessage ( response ) ;
279
+ var startPosition = stream . Position ;
280
+ foreach ( var response in responses )
281
+ {
282
+ var encoderFactory = new BinaryMessageEncoderFactory ( stream , null ) ;
283
+ var encoder = response . GetEncoder ( encoderFactory ) ;
284
+ encoder . WriteMessage ( response ) ;
285
+ }
286
+ stream . Position = startPosition ;
283
287
}
284
- stream . Position = startPosition ;
285
288
}
286
289
287
290
private static List < RequestMessage > TranslateBytesToRequests ( byte [ ] bytes )
You can’t perform that action at this time.
0 commit comments