replace new/delete with sp
This commit is contained in:
parent
e32731b60b
commit
ab5be0b773
71 changed files with 271 additions and 387 deletions
|
@ -49,18 +49,12 @@ xmrig::MemoryPool::MemoryPool(size_t size, bool hugePages, uint32_t node)
|
|||
|
||||
constexpr size_t alignment = 1 << 24;
|
||||
|
||||
m_memory = new VirtualMemory(size * pageSize + alignment, hugePages, false, false, node);
|
||||
m_memory = std::make_shared<VirtualMemory>(size * pageSize + alignment, hugePages, false, false, node);
|
||||
|
||||
m_alignOffset = (alignment - (((size_t)m_memory->scratchpad()) % alignment)) % alignment;
|
||||
}
|
||||
|
||||
|
||||
xmrig::MemoryPool::~MemoryPool()
|
||||
{
|
||||
delete m_memory;
|
||||
}
|
||||
|
||||
|
||||
bool xmrig::MemoryPool::isHugePages(uint32_t) const
|
||||
{
|
||||
return m_memory && m_memory->isHugePages();
|
||||
|
|
|
@ -44,7 +44,7 @@ public:
|
|||
XMRIG_DISABLE_COPY_MOVE_DEFAULT(MemoryPool)
|
||||
|
||||
MemoryPool(size_t size, bool hugePages, uint32_t node = 0);
|
||||
~MemoryPool() override;
|
||||
~MemoryPool() override = default;
|
||||
|
||||
protected:
|
||||
bool isHugePages(uint32_t node) const override;
|
||||
|
@ -55,7 +55,7 @@ private:
|
|||
size_t m_refs = 0;
|
||||
size_t m_offset = 0;
|
||||
size_t m_alignOffset = 0;
|
||||
VirtualMemory *m_memory = nullptr;
|
||||
std::shared_ptr<VirtualMemory> m_memory;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -42,14 +42,6 @@ xmrig::NUMAMemoryPool::NUMAMemoryPool(size_t size, bool hugePages) :
|
|||
}
|
||||
|
||||
|
||||
xmrig::NUMAMemoryPool::~NUMAMemoryPool()
|
||||
{
|
||||
for (auto kv : m_map) {
|
||||
delete kv.second;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool xmrig::NUMAMemoryPool::isHugePages(uint32_t node) const
|
||||
{
|
||||
if (!m_size) {
|
||||
|
@ -81,7 +73,7 @@ void xmrig::NUMAMemoryPool::release(uint32_t node)
|
|||
|
||||
xmrig::IMemoryPool *xmrig::NUMAMemoryPool::get(uint32_t node) const
|
||||
{
|
||||
return m_map.count(node) ? m_map.at(node) : nullptr;
|
||||
return m_map.count(node) ? m_map.at(node).get() : nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
@ -89,8 +81,9 @@ xmrig::IMemoryPool *xmrig::NUMAMemoryPool::getOrCreate(uint32_t node) const
|
|||
{
|
||||
auto pool = get(node);
|
||||
if (!pool) {
|
||||
pool = new MemoryPool(m_nodeSize, m_hugePages, node);
|
||||
m_map.insert({ node, pool });
|
||||
auto new_pool = std::make_shared<MemoryPool>(m_nodeSize, m_hugePages, node);
|
||||
m_map.emplace(node, new_pool);
|
||||
pool = new_pool.get();
|
||||
}
|
||||
|
||||
return pool;
|
||||
|
|
|
@ -47,7 +47,7 @@ public:
|
|||
XMRIG_DISABLE_COPY_MOVE_DEFAULT(NUMAMemoryPool)
|
||||
|
||||
NUMAMemoryPool(size_t size, bool hugePages);
|
||||
~NUMAMemoryPool() override;
|
||||
~NUMAMemoryPool() override = default;
|
||||
|
||||
protected:
|
||||
bool isHugePages(uint32_t node) const override;
|
||||
|
@ -61,7 +61,7 @@ private:
|
|||
bool m_hugePages = true;
|
||||
size_t m_nodeSize = 0;
|
||||
size_t m_size = 0;
|
||||
mutable std::map<uint32_t, IMemoryPool *> m_map;
|
||||
mutable std::map<uint32_t, std::shared_ptr<IMemoryPool>> m_map;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ namespace xmrig {
|
|||
|
||||
|
||||
size_t VirtualMemory::m_hugePageSize = VirtualMemory::kDefaultHugePageSize;
|
||||
static IMemoryPool *pool = nullptr;
|
||||
static std::shared_ptr<IMemoryPool> pool;
|
||||
static std::mutex mutex;
|
||||
|
||||
|
||||
|
@ -113,7 +113,7 @@ uint32_t xmrig::VirtualMemory::bindToNUMANode(int64_t)
|
|||
|
||||
void xmrig::VirtualMemory::destroy()
|
||||
{
|
||||
delete pool;
|
||||
pool.reset();
|
||||
}
|
||||
|
||||
|
||||
|
@ -125,10 +125,10 @@ void xmrig::VirtualMemory::init(size_t poolSize, size_t hugePageSize)
|
|||
|
||||
# ifdef XMRIG_FEATURE_HWLOC
|
||||
if (Cpu::info()->nodes() > 1) {
|
||||
pool = new NUMAMemoryPool(align(poolSize, Cpu::info()->nodes()), hugePageSize > 0);
|
||||
pool = std::make_shared<NUMAMemoryPool>(align(poolSize, Cpu::info()->nodes()), hugePageSize > 0);
|
||||
} else
|
||||
# endif
|
||||
{
|
||||
pool = new MemoryPool(poolSize, hugePageSize > 0);
|
||||
pool = std::make_shared<MemoryPool>(poolSize, hugePageSize > 0);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue