aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/mem_linux.c
diff options
context:
space:
mode:
authorSébastien Paolacci <sebastien.paolacci@gmail.com>2012-12-29 14:34:06 -0500
committerRuss Cox <rsc@golang.org>2012-12-29 14:34:06 -0500
commite786829e8320497a062be1b3f78646bcf9375abc (patch)
tree0c74f03c27165d1e6dd53689d7a239c7d6589b35 /src/pkg/runtime/mem_linux.c
parent975bf6d3236118ad69e1555faa0d8264923770e8 (diff)
downloadgo-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.c5
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;