Exemplo n.º 1
0
        public bool Remove(T buffer)
        {
            if (!_buffers.Contains(buffer))
            {
                return(false);
            }

            _buffers.Remove(buffer);
            _events?.Free(_bufferSize);
            return(true);
        }
Exemplo n.º 2
0
        public bool TryPop(out T buffer)
        {
            if (_buffers.Count <= 0)
            {
                buffer = default(T);
                return(false);
            }

            buffer = _buffers.Pop();
            _events?.Free(_bufferSize);
            return(true);
        }
Exemplo n.º 3
0
        public void Free(IntPtr buffer)
        {
            if (buffer == IntPtr.Zero)
            {
                return;
            }

            if (!_buffers.TryRemove(buffer, out var size))
            {
                return;
            }

            Marshal.FreeHGlobal(buffer);
            _events?.Free(size);
        }
Exemplo n.º 4
0
 public void Free(T[] data)
 {
     _events?.Free(data.Length);
 }