commit | fb75f856df0c3ad5f4df861ab6ff3cab8a73a129 | [log] [tgz] |
---|---|---|
author | David du Colombier <0intro@gmail.com> | Thu Feb 26 22:41:33 2015 +0100 |
committer | David du Colombier <0intro@gmail.com> | Thu Feb 26 21:47:16 2015 +0000 |
tree | 3742f5b77fde6e9c36b9caacabedc201e86b1237 | |
parent | 3a3c9d6d66fb50a9cd6f475a0ee7301ca50259e4 [diff] |
runtime: fix memory allocator on Plan 9 Previously, the memory allocator on Plan 9 did not free memory properly. It was only able to free the last allocated block. This change implements a variant of the Kernighan & Ritchie memory allocator with coalescing and splitting. The most notable differences are: - no header is prefixing the allocated blocks, since the size is always specified when calling sysFree, - the free list is nil-terminated instead of circular. Fixes #9736. Fixes #9803. Fixes #9952. Change-Id: I00d533714e4144a0012f69820d31cbb0253031a3 Reviewed-on: https://go-review.googlesource.com/5524 Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.
For documentation about how to install and use Go, visit https://golang.org/ or load doc/install-source.html in your web browser.
Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.
Please report issues here: https://golang.org/issue/new
Go is the work of hundreds of contributors. We appreciate your help!
To contribute, please read the contribution guidelines: https://golang.org/doc/contribute.html
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.
If you have just untarred a binary Go distribution, you need to set the environment variable $GOROOT to the full path of the go directory (the one containing this file). You can omit the variable if you unpack it into /usr/local/go, or if you rebuild from sources by running all.bash (see doc/install-source.html). You should also add the Go binary directory $GOROOT/bin to your shell's path.
For example, if you extracted the tar file into $HOME/go, you might put the following in your .profile:
export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin
See https://golang.org/doc/install or doc/install.html for more details.