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
4242 private DnsEndPoint _endPoint ;
4343 private EventCapturer _capturedEvents ;
4444 private MessageEncoderSettings _messageEncoderSettings = new MessageEncoderSettings ( ) ;
45- private Stream _stream ;
45+ private BlockingMemoryStream _stream ;
4646 private Mock < IStreamFactory > _mockStreamFactory ;
4747 private BinaryConnection _subject ;
4848 private IDisposable _operationIdDisposer ;
Original file line number Diff line number Diff line change @@ -50,6 +50,11 @@ public override long Length
5050 }
5151 }
5252
53+ public object Lock
54+ {
55+ get { return _lock ; }
56+ }
57+
5358 public override long Position
5459 {
5560 get
Original file line number Diff line number Diff line change @@ -272,16 +272,19 @@ public static List<BsonDocument> TranslateMessagesToBsonDocuments(byte[] bytes)
272272 return TranslateMessagesToBsonDocuments ( TranslateBytesToRequests ( bytes ) ) ;
273273 }
274274
275- public static void WriteResponsesToStream ( Stream stream , IEnumerable < ResponseMessage > responses )
275+ public static void WriteResponsesToStream ( BlockingMemoryStream stream , IEnumerable < ResponseMessage > responses )
276276 {
277- var startPosition = stream . Position ;
278- foreach ( var response in responses )
277+ lock ( stream . Lock )
279278 {
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 ;
283287 }
284- stream . Position = startPosition ;
285288 }
286289
287290 private static List < RequestMessage > TranslateBytesToRequests ( byte [ ] bytes )
You can’t perform that action at this time.
0 commit comments