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

Method setMemoryManager

src/backend/opencl/device_manager.cpp:386–402  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

384}
385
386void DeviceManager::setMemoryManager(
387 std::unique_ptr<MemoryManagerBase> newMgr) {
388 std::lock_guard<std::mutex> l(mutex);
389 // It's possible we're setting a memory manager and the default memory
390 // manager still hasn't been initialized, so initialize it anyways so we
391 // don't inadvertently reset to it when we first call memoryManager()
392 memoryManager();
393 // Calls shutdown() on the existing memory manager.
394 if (memManager) { memManager->shutdownAllocator(); }
395 memManager = std::move(newMgr);
396 // Set the backend memory manager for this new manager to register native
397 // functions correctly.
398 std::unique_ptr<opencl::Allocator> deviceMemoryManager(
399 new opencl::Allocator());
400 memManager->setAllocator(std::move(deviceMemoryManager));
401 memManager->initialize();
402}
403
404void DeviceManager::resetMemoryManager() {
405 // 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