summaryrefslogtreecommitdiffstats
path: root/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/threadpool.hpp')
-rw-r--r--vespamalloc/src/vespamalloc/malloc/threadpool.hpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/threadpool.hpp b/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
index 7e86c3f691a..e9b9fabebdc 100644
--- a/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
+++ b/vespamalloc/src/vespamalloc/malloc/threadpool.hpp
@@ -2,6 +2,7 @@
#pragma once
#include <vespamalloc/malloc/threadpool.h>
+#include <malloc.h>
namespace vespamalloc {
@@ -85,6 +86,7 @@ mallocHelper(size_t exactSize,
template <typename MemBlockPtrT, typename ThreadStatT >
ThreadPoolT<MemBlockPtrT, ThreadStatT>::ThreadPoolT() :
_allocPool(nullptr),
+ _mmapLimit(0x40000000),
_threadId(0),
_osThreadId(0)
{
@@ -94,6 +96,15 @@ template <typename MemBlockPtrT, typename ThreadStatT >
ThreadPoolT<MemBlockPtrT, ThreadStatT>::~ThreadPoolT() = default;
template <typename MemBlockPtrT, typename ThreadStatT >
+int ThreadPoolT<MemBlockPtrT, ThreadStatT>::mallopt(int param, int value) {
+ if (param == M_MMAP_THRESHOLD) {
+ _mmapLimit = value;
+ return 1;
+ }
+ return 0;
+}
+
+template <typename MemBlockPtrT, typename ThreadStatT >
void ThreadPoolT<MemBlockPtrT, ThreadStatT>::malloc(size_t sz, MemBlockPtrT & mem)
{
SizeClassT sc = MemBlockPtrT::sizeClass(sz);