public override T Pop() { OOMSoftReference <T> reference = (OOMSoftReference <T>)_freeList.Dequeue(); T value = reference.Get(); reference.Clear(); _spareReferences.Enqueue(reference); return(value); }
private byte[] GetByteArray(int requestedSize) { int bucketedSize = GetBucketedSize(requestedSize); byte[] byteArray = _byteArraySoftRef.Get(); if (byteArray == null || byteArray.Length < bucketedSize) { byteArray = AllocateByteArray(bucketedSize); } return(byteArray); }