diff options
author | Jack Lloyd <[email protected]> | 2015-08-24 07:46:51 -0400 |
---|---|---|
committer | Jack Lloyd <[email protected]> | 2015-08-24 07:46:51 -0400 |
commit | ce849c364c29ce020369685ce8d221f8e67cf538 (patch) | |
tree | 019731a15df0d7f09fbd567254bd5e9e5a1affd8 /src/lib | |
parent | 97b6e192e752fe8a0fd95116a84d7b29d8ed71f5 (diff) |
Guard rlimit reset with a defined check for RLIMIT_MEMLOCK as it is
missing on Solaris at least. On such systems it's probably safe to
assume that no amount of memory can be mlock'ed from userspace, so
just return zero to disable the allocator entirely.
GH #262
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/alloc/locking_allocator/locking_allocator.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/alloc/locking_allocator/locking_allocator.cpp b/src/lib/alloc/locking_allocator/locking_allocator.cpp index 6a9cc2579..ec294d8f0 100644 --- a/src/lib/alloc/locking_allocator/locking_allocator.cpp +++ b/src/lib/alloc/locking_allocator/locking_allocator.cpp @@ -26,7 +26,9 @@ const size_t ALIGNMENT_MULTIPLE = 2; size_t reset_mlock_limit(size_t max_req) { +#if defined(RLIMIT_MEMLOCK) struct rlimit limits; + ::getrlimit(RLIMIT_MEMLOCK, &limits); if(limits.rlim_cur < limits.rlim_max) @@ -37,6 +39,9 @@ size_t reset_mlock_limit(size_t max_req) } return std::min<size_t>(limits.rlim_cur, max_req); +#endif + + return 0; } size_t mlock_limit() |