all: make garbage collector configurable

This commit is contained in:
Ayke van Laethem
2018-11-17 15:01:30 +01:00
parent ecb4742316
commit c220c140ef
3 changed files with 23 additions and 3 deletions
-38
View File
@@ -1,38 +0,0 @@
package runtime
import (
"unsafe"
)
// Ever-incrementing pointer: no memory is freed.
var heapptr = heapStart
func alloc(size uintptr) unsafe.Pointer {
// TODO: this can be optimized by not casting between pointers and ints so
// much. And by using platform-native data types (e.g. *uint8 for 8-bit
// systems).
size = align(size)
addr := heapptr
heapptr += size
for i := uintptr(0); i < uintptr(size); i += 4 {
ptr := (*uint32)(unsafe.Pointer(addr + i))
*ptr = 0
}
return unsafe.Pointer(addr)
}
func free(ptr unsafe.Pointer) {
// TODO: use a GC
}
func GC() {
// Unimplemented.
}
func KeepAlive(x interface{}) {
// Unimplemented. Only required with SetFinalizer().
}
func SetFinalizer(obj interface{}, finalizer interface{}) {
// Unimplemented.
}