Documentation
¶
Index ¶
- func AppendSlice[T any](gen *Generation, metadata *SliceMetadata, elems ...T)
- func MakeSliceFromPtr[T any](ptr unsafe.Pointer, len, cap int) []T
- type Generation
- func (gen *Generation) Mark(gcID uint64, searchMetadata SearchFunc)
- func (gen *Generation) MoveTo(dst *Generation)
- func (gen *Generation) SearchObject(addr unsafe.Pointer) (metadata *ObjectMetadata, exist bool)
- func (gen *Generation) SearchSliceData(slicePtr unsafe.Pointer) (metadata *SliceMetadata, exist bool)
- func (gen *Generation) Size() int
- func (gen *Generation) Sweep() (int, int)
- type ObjectMetadata
- type SearchFunc
- type SliceMetadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppendSlice ¶
func AppendSlice[T any](gen *Generation, metadata *SliceMetadata, elems ...T)
Types ¶
type Generation ¶
type Generation struct {
// contains filtered or unexported fields
}
func NewGeneration ¶
func NewGeneration(arenaSignals chan<- struct{}) *Generation
func (*Generation) Mark ¶
func (gen *Generation) Mark(gcID uint64, searchMetadata SearchFunc)
func (*Generation) MoveTo ¶
func (gen *Generation) MoveTo(dst *Generation)
func (*Generation) SearchObject ¶
func (gen *Generation) SearchObject(addr unsafe.Pointer) (metadata *ObjectMetadata, exist bool)
func (*Generation) SearchSliceData ¶
func (gen *Generation) SearchSliceData(slicePtr unsafe.Pointer) (metadata *SliceMetadata, exist bool)
func (*Generation) Size ¶
func (gen *Generation) Size() int
func (*Generation) Sweep ¶
func (gen *Generation) Sweep() (int, int)
type ObjectMetadata ¶
type ObjectMetadata struct {
sync.RWMutex
Address unsafe.Pointer
// contains filtered or unexported fields
}
func AllocateObject ¶
func AllocateObject[T any](gen *Generation) *ObjectMetadata
type SearchFunc ¶
type SearchFunc func(addr unsafe.Pointer) (metadata *ObjectMetadata, exist bool)
type SliceMetadata ¶
type SliceMetadata struct {
ObjectMetadata
Len int
Cap int
}
func AllocateSlice ¶
func AllocateSlice[T any](gen *Generation, len, cap int) *SliceMetadata
Click to show internal directories.
Click to hide internal directories.