internal MessageBufferPool(MessageBufferProducer <T> messageProducer, int maxBuffers, int chunkSize, int chunksPerBlock, int maxPooled) { #if DEBUG if (messageProducer == null) { throw new ArgumentNullException("messageProducer"); } #endif poolAmount = maxPooled; pool = new Queue <T>(maxPooled); producer = messageProducer; bufferManager = new BufferManager(maxBuffers, chunkSize, chunksPerBlock); // Pre-allocate the amount of maxPooled objects we want to have T preAllocated; for (var i = 0; i < poolAmount; ++i) { if (tryAllocate(out preAllocated)) { if (!TryPush(preAllocated)) { //TODO: Error } } else { //TODO: Error } } }
internal MessageBufferPool(MessageBufferProducer <T> messageProducer) : this(messageProducer, 5, 1024, 1024, 1024) { }