public SmartBufferPool(int maxMemoryUsageMb, int initialSizeMb, int extraBufferSizeMb) { InitialMemoryUsage = initialSizeMb * Mb; ExtraMemoryUsage = extraBufferSizeMb * Mb; MaxBuffersCount = (maxMemoryUsageMb * Mb - InitialMemoryUsage) / ExtraMemoryUsage; MaxMemoryUsage = InitialMemoryUsage + ExtraMemoryUsage * MaxBuffersCount; array = new LockFreeItem <long> [MaxMemoryUsage / MinSize]; empty = new LockFreeStack <long>(array, 0, array.Length); int count = 0; while (MaxSize >> count >= MinSize) { count++; } ready = new LockFreeStack <long> [count]; for (int i = 0; i < ready.Length; i++) { ready[i] = new LockFreeStack <long>(array, -1, -1); } buffers = new byte[MaxBuffersCount][]; buffers[0] = NewBuffer(InitialMemoryUsage); }
public LockFreePool(int size) { array = new LockFreeItem <T> [size]; full = new LockFreeStack <T>(array, -1, -1); empty = new LockFreeStack <T>(array, 0, array.Length); }
public SocketRecycling(int maxSocket) { if (maxSocket > 0) { this.isEnabled = true; this.array = new LockFreeItem <Socket> [maxSocket]; this.empty = new LockFreeStack <Socket>(this.array, 0, maxSocket); this.full4 = new LockFreeStack <Socket>(this.array, -1, -1); this.full6 = new LockFreeStack <Socket>(this.array, -1, -1); } }
public SmartBufferPool(int maxMemoryUsageMb, int initialSizeMb, int extraBufferSizeMb) { this.InitialMemoryUsage = (long)initialSizeMb * 1048576L; this.ExtraMemoryUsage = (long)extraBufferSizeMb * 1048576L; this.MaxBuffersCount = ((long)maxMemoryUsageMb * 1048576L - this.InitialMemoryUsage) / this.ExtraMemoryUsage; this.MaxMemoryUsage = this.InitialMemoryUsage + this.ExtraMemoryUsage * this.MaxBuffersCount; this.array = new LockFreeItem <long> [this.MaxMemoryUsage / 1024L]; this.empty = new LockFreeStack <long>(this.array, 0, this.array.Length); int num = 0; while (262144 >> num >= 1024) { num++; } this.ready = new LockFreeStack <long> [num]; for (int i = 0; i < this.ready.Length; i++) { this.ready[i] = new LockFreeStack <long>(this.array, -1, -1); } this.buffers = new byte[this.MaxBuffersCount][]; this.buffers[0] = SmartBufferPool.NewBuffer(this.InitialMemoryUsage); }
public LockFreePool(int size) { this.array = new LockFreeItem <T> [size]; this.full = new LockFreeStack <T>(this.array, -1, -1); this.empty = new LockFreeStack <T>(this.array, 0, this.array.Length); }
public LockFreeFastPool(int size) { array = new LockFreeItem <T> [size]; full = new LockFreeStack <T>(array, -1, -1); }
public LockFreeFastPool(int size) { this.array = new LockFreeItem <T> [size]; this.full = new LockFreeStack <T>(this.array, -1, -1); }