diff options
| author | Sébastien Paolacci <sebastien.paolacci@gmail.com> | 2012-12-29 14:34:06 -0500 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2012-12-29 14:34:06 -0500 |
| commit | e786829e8320497a062be1b3f78646bcf9375abc (patch) | |
| tree | 0c74f03c27165d1e6dd53689d7a239c7d6589b35 /src/pkg/runtime/mem_linux.c | |
| parent | 975bf6d3236118ad69e1555faa0d8264923770e8 (diff) | |
| download | go-e786829e8320497a062be1b3f78646bcf9375abc.tar.xz | |
runtime: handle locked mmap failure on Linux
Used to then die on a nil pointer situation. Most Linux standard setups are rather
restrictive regarding the default amount of lockable memory.
R=minux.ma, rsc
CC=golang-dev
https://golang.org/cl/6997049
Diffstat (limited to 'src/pkg/runtime/mem_linux.c')
| -rw-r--r-- | src/pkg/runtime/mem_linux.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/pkg/runtime/mem_linux.c b/src/pkg/runtime/mem_linux.c index b3e79cc412..db1975f4ca 100644 --- a/src/pkg/runtime/mem_linux.c +++ b/src/pkg/runtime/mem_linux.c @@ -10,6 +10,7 @@ enum { + EAGAIN = 11, ENOMEM = 12, _PAGE_SIZE = 4096, }; @@ -63,6 +64,10 @@ runtime·SysAlloc(uintptr n) runtime·printf("if you're running SELinux, enable execmem for this process.\n"); runtime·exit(2); } + if(p == (void*)EAGAIN) { + runtime·printf("runtime: mmap: too much locked memory (check 'ulimit -l').\n"); + runtime·exit(2); + } return nil; } return p; |
