#include <dali/internal/common/fixed-size-memory-pool.h>
// INTERNAL HEADERS
+#include <dali/devel-api/threading/mutex.h>
#include <dali/public-api/common/dali-common.h>
namespace Dali
* @brief Constructor
*/
Impl( SizeType fixedSize, SizeType initialCapacity, SizeType maximumBlockCapacity )
- : mFixedSize( fixedSize ),
+ : mMutex(),
+ mFixedSize( fixedSize ),
mMemoryBlocks( initialCapacity * mFixedSize ),
mMaximumBlockCapacity( maximumBlockCapacity ),
mCurrentBlock( &mMemoryBlocks ),
mCurrentBlockSize = 0;
}
+ Mutex mMutex; ///< Mutex for thread-safe allocation and deallocation
+
SizeType mFixedSize; ///< The size of each allocation in bytes
Block mMemoryBlocks; ///< Linked list of allocated memory blocks
mImpl->mDeletedObjects = memory;
}
+void* FixedSizeMemoryPool::AllocateThreadSafe()
+{
+ Mutex::ScopedLock lock( mImpl->mMutex );
+ return Allocate();
+}
+
+void FixedSizeMemoryPool::FreeThreadSafe( void* memory )
+{
+ Mutex::ScopedLock lock( mImpl->mMutex );
+ Free( memory );
+}
+
+
} // namespace Internal
} // namespace Dali