public bool Remove(T buffer) { if (!_buffers.Contains(buffer)) { return(false); } _buffers.Remove(buffer); _events?.Free(_bufferSize); return(true); }
public bool TryPop(out T buffer) { if (_buffers.Count <= 0) { buffer = default(T); return(false); } buffer = _buffers.Pop(); _events?.Free(_bufferSize); return(true); }
public void Free(IntPtr buffer) { if (buffer == IntPtr.Zero) { return; } if (!_buffers.TryRemove(buffer, out var size)) { return; } Marshal.FreeHGlobal(buffer); _events?.Free(size); }
public void Free(T[] data) { _events?.Free(data.Length); }