mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 15:30:06 +08:00
31 lines
820 B
Go
31 lines
820 B
Go
// Package mmap provides memory mapped related utilities.
|
|
package mmap
|
|
|
|
import "os"
|
|
|
|
// PageSize is the minimum allocation size. Allocations will use at
|
|
// least this size and are likely to be multiplied up to a multiple of
|
|
// this size.
|
|
var PageSize = os.Getpagesize()
|
|
|
|
// MustAlloc allocates size bytes and returns a slice containing them. If
|
|
// the allocation fails it will panic. This is best used for
|
|
// allocations which are a multiple of the PageSize.
|
|
func MustAlloc(size int) []byte {
|
|
mem, err := Alloc(size)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return mem
|
|
}
|
|
|
|
// MustFree frees buffers allocated by Alloc. Note it should be passed
|
|
// the same slice (not a derived slice) that Alloc returned. If the
|
|
// free fails it will panic.
|
|
func MustFree(mem []byte) {
|
|
err := Free(mem)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|