Slide 45
Slide 45 text
! // allocate slab!
! slabSize := 1024!
! b, _ := syscall.Mmap(-1, 0, slabSize,!
! ! syscall.PROT_READ|syscall.PROT_WRITE|syscall.PROT_EXEC,!
! ! syscall.MAP_ANON|syscall.MAP_PRIVATE)!
!
! // store values!
! someVals := []float64{23, 92, 1, 0, 3}!
! offset := 0!
! for _, v := range someVals {!
! ! x := (*float64)(unsafe.Pointer(&b[offset]))!
! ! *x = v!
! ! offset += 8!
! }!
!
! // read them out!
! offset = 0!
! for offset < len(b) {!
! ! x := (*float64)(unsafe.Pointer(&b[offset]))!
! ! offset += 8!
! ! fmt.Println("n: ", *x)!
! }!