Commit 7c9e64a0 authored by Qi Wang's avatar Qi Wang Committed by Facebook Github Bot

make extent_hooks static.

Summary:
Make extent hooks static and avoid calling arena_destroy, in case there are
alive allocations not freed yet.

Reviewed By: yfeldblum

Differential Revision: D5208102

fbshipit-source-id: 612c772347cd90227fa303fd0b059edbaeb7d4e2
parent 4929771e
...@@ -29,19 +29,6 @@ JemallocNodumpAllocator::JemallocNodumpAllocator(State state) { ...@@ -29,19 +29,6 @@ JemallocNodumpAllocator::JemallocNodumpAllocator(State state) {
} }
} }
JemallocNodumpAllocator::~JemallocNodumpAllocator() {
#ifdef FOLLY_JEMALLOC_NODUMP_ALLOCATOR_EXTENT
if (arena_index_ != 0) {
// Destroy the arena because the hooks are linked to us.
const auto key = folly::to<std::string>("arena.", arena_index_, ".destroy");
if (auto ret = mallctl(key.c_str(), nullptr, 0, nullptr, 0)) {
LOG(FATAL) << "Unable to destroy arena: " << errnoStr(ret);
}
LOG(INFO) << "Destroy arena: " << arena_index_;
}
#endif
}
bool JemallocNodumpAllocator::extend_and_setup_arena() { bool JemallocNodumpAllocator::extend_and_setup_arena() {
#ifdef FOLLY_JEMALLOC_NODUMP_ALLOCATOR_SUPPORTED #ifdef FOLLY_JEMALLOC_NODUMP_ALLOCATOR_SUPPORTED
if (mallctl == nullptr) { if (mallctl == nullptr) {
...@@ -132,6 +119,7 @@ chunk_alloc_t* JemallocNodumpAllocator::original_alloc_ = nullptr; ...@@ -132,6 +119,7 @@ chunk_alloc_t* JemallocNodumpAllocator::original_alloc_ = nullptr;
void* JemallocNodumpAllocator::alloc( void* JemallocNodumpAllocator::alloc(
void* chunk, void* chunk,
#else #else
extent_hooks_t JemallocNodumpAllocator::extent_hooks_;
extent_alloc_t* JemallocNodumpAllocator::original_alloc_ = nullptr; extent_alloc_t* JemallocNodumpAllocator::original_alloc_ = nullptr;
void* JemallocNodumpAllocator::alloc( void* JemallocNodumpAllocator::alloc(
extent_hooks_t* extent, extent_hooks_t* extent,
......
...@@ -76,7 +76,6 @@ class JemallocNodumpAllocator { ...@@ -76,7 +76,6 @@ class JemallocNodumpAllocator {
static void deallocate(void* p, void* userData); static void deallocate(void* p, void* userData);
explicit JemallocNodumpAllocator(State state = State::ENABLED); explicit JemallocNodumpAllocator(State state = State::ENABLED);
~JemallocNodumpAllocator();
void* allocate(size_t size); void* allocate(size_t size);
void* reallocate(void* p, size_t size); void* reallocate(void* p, size_t size);
...@@ -92,7 +91,7 @@ class JemallocNodumpAllocator { ...@@ -92,7 +91,7 @@ class JemallocNodumpAllocator {
static void* alloc( static void* alloc(
void* chunk, void* chunk,
#else #else
extent_hooks_t extent_hooks_; static extent_hooks_t extent_hooks_;
static extent_alloc_t* original_alloc_; static extent_alloc_t* original_alloc_;
static void* alloc( static void* alloc(
extent_hooks_t* extent, extent_hooks_t* extent,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment