MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / setMemoryManager

Method setMemoryManager

src/backend/oneapi/device_manager.cpp:236–252  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234}
235
236void DeviceManager::setMemoryManager(
237 std::unique_ptr<MemoryManagerBase> newMgr) {
238 std::lock_guard<std::mutex> l(mutex);
239 // It's possible we're setting a memory manager and the default memory
240 // manager still hasn't been initialized, so initialize it anyways so we
241 // don't inadvertently reset to it when we first call memoryManager()
242 memoryManager();
243 // Calls shutdown() on the existing memory manager.
244 if (memManager) { memManager->shutdownAllocator(); }
245 memManager = std::move(newMgr);
246 // Set the backend memory manager for this new manager to register native
247 // functions correctly.
248 std::unique_ptr<oneapi::Allocator> deviceMemoryManager(
249 new oneapi::Allocator());
250 memManager->setAllocator(std::move(deviceMemoryManager));
251 memManager->initialize();
252}
253
254void DeviceManager::resetMemoryManager() {
255 // Replace with default memory manager

Callers 1

setMemoryManagerFunction · 0.45

Calls 3

shutdownAllocatorMethod · 0.80
setAllocatorMethod · 0.80
initializeMethod · 0.45

Tested by

no test coverage detected