]> Cypherpunks repositories - gostls13.git/commit
runtime: fix memory allocator on Plan 9
authorDavid du Colombier <0intro@gmail.com>
Thu, 26 Feb 2015 21:41:33 +0000 (22:41 +0100)
committerDavid du Colombier <0intro@gmail.com>
Thu, 26 Feb 2015 21:47:16 +0000 (21:47 +0000)
commitfb75f856df0c3ad5f4df861ab6ff3cab8a73a129
tree3742f5b77fde6e9c36b9caacabedc201e86b1237
parent3a3c9d6d66fb50a9cd6f475a0ee7301ca50259e4
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>
src/runtime/mem_plan9.go