forked from ceph/rocksdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enable cacheline_aligned_alloc() to allocate from jemalloc if enabled.
Summary: Reuse WITH_JEMALLOC option in preparation for module search unification. Move jemalloc overrides into a separate .cc Remote obsolete JEMALLOC_NOINIT option. Closes facebook#3078 Differential Revision: D6174826 Pulled By: yiwu-arbug fbshipit-source-id: 9970a0289b4490272d15853920d9d7531af91140
- Loading branch information
1 parent
d9240b5
commit 682db81
Showing
6 changed files
with
89 additions
and
147 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved. | ||
// This source code is licensed under the BSD-style license found in the | ||
// LICENSE file in the root directory of this source tree. An additional grant | ||
// of patent rights can be found in the PATENTS file in the same directory. | ||
// | ||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. See the AUTHORS file for names of contributors. | ||
|
||
#ifndef ROCKSDB_JEMALLOC | ||
# error This file can only be part of jemalloc aware build | ||
#endif | ||
|
||
#include <stdexcept> | ||
#include "jemalloc/jemalloc.h" | ||
|
||
// Global operators to be replaced by a linker when this file is | ||
// a part of the build | ||
|
||
void* operator new(size_t size) { | ||
void* p = je_malloc(size); | ||
if (!p) { | ||
throw std::bad_alloc(); | ||
} | ||
return p; | ||
} | ||
|
||
void* operator new[](size_t size) { | ||
void* p = je_malloc(size); | ||
if (!p) { | ||
throw std::bad_alloc(); | ||
} | ||
return p; | ||
} | ||
|
||
void operator delete(void* p) { | ||
if (p) { | ||
je_free(p); | ||
} | ||
} | ||
|
||
void operator delete[](void* p) { | ||
if (p) { | ||
je_free(p); | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters