Class BufferAlloc

class BufferAlloc
  : MemAlloc ;

Properties

NameTypeDescription
buffer[get] Buffer
mem[get] DeviceMemory
offset[get] ulong
refCount[get] ulongAtomically loads the number of active references.
refCountShared[get] ulongAtomically loads the number of active references.
size[get] ulong

Methods

NameDescription
dispose () Dispose the underlying resource
map (offset, size)
rcLock () Returns whether the refCount >= 1. This increases the refCount by 1. rcLock should be used to keep weak reference and ensures that the resource is not disposed. The operation is atomic.
rcLockShared () Returns whether the refCount >= 1. This increases the refCount by 1. rcLock should be used to keep weak reference and ensures that the resource is not disposed. The operation is atomic.
release (disposeOnZero) Atomically decrement the reference count. If refCount reaches zero, and disposeOnZero is set, the object is locked with its own mutex, and dispose is called. In most cases, the calling code should set disposeOnZero, unless it is intended to release the object to give it away. (such as at the end of a builder function)
releaseMap ()
releaseShared (disposeOnZero) Atomically decrement the reference count. If refCount reaches zero, and disposeOnZero is set, the object is locked with its own mutex, and dispose is called. In most cases, the calling code should set disposeOnZero, unless it is intended to release the object to give it away. (such as at the end of a builder function)
retain () Atomically increment the reference count.
retainMap () Artificially increment the mapping reference count in order to keep the memory mapped even if no MemoryMap is alive
retainShared () Atomically increment the reference count.