memory pool for SSU messages and fragments

This commit is contained in:
orignal 2021-09-11 18:58:27 -04:00
parent 5e2e1a1e3d
commit e054c6e82c
6 changed files with 41 additions and 21 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2013-2020, The PurpleI2P Project
* Copyright (c) 2013-2021, The PurpleI2P Project
*
* This file is part of Purple i2pd project and licensed under BSD3
*
@ -50,6 +50,11 @@ namespace util
MemoryPool (): m_Head (nullptr) {}
~MemoryPool ()
{
CleanUp ();
}
void CleanUp ()
{
while (m_Head)
{
@ -57,8 +62,8 @@ namespace util
m_Head = static_cast<T*>(*(void * *)m_Head); // next
::operator delete ((void *)tmp);
}
}
}
template<typename... TArgs>
T * Acquire (TArgs&&... args)
{