internal MtomMessageEncoder.MtomBufferedMessageData TakeBufferedReader(MtomMessageEncoder messageEncoder) { if (_bufferedReaderPool == null) { lock (_thisLock) { if (_bufferedReaderPool == null) { _bufferedReaderPool = new SynchronizedPool <MtomMessageEncoder.MtomBufferedMessageData>(MaxReadPoolSize); } } } MtomMessageEncoder.MtomBufferedMessageData messageData = _bufferedReaderPool.Take(); if (messageData == null) { messageData = new MtomMessageEncoder.MtomBufferedMessageData(messageEncoder, MaxPooledXmlReadersPerMessage); if (WcfEventSource.Instance.ReadPoolMissIsEnabled()) { WcfEventSource.Instance.ReadPoolMiss(messageData.GetType().Name); } } return(messageData); }
internal void ReturnBufferedData(MtomMessageEncoder.MtomBufferedMessageData messageData) { _bufferedReaderPool.Return(messageData); }