1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
diff --git a/general/mem_manager.cpp b/general/mem_manager.cpp
index ff4a03465..748f6e673 100644
--- a/general/mem_manager.cpp
+++ b/general/mem_manager.cpp
@@ -482,7 +482,8 @@ public:
HostMemorySpace(),
name(mm.GetUmpireAllocatorHostName()),
rm(umpire::ResourceManager::getInstance()),
- h_allocator(rm.isAllocator(name)? rm.getAllocator(name):
+ h_allocator((!std::strcmp(name, "HOST") || rm.isAllocator(name)) ?
+ rm.getAllocator(name) :
rm.makeAllocator<umpire::strategy::DynamicPool>
(name, rm.getAllocator("HOST"))),
strat(h_allocator.getAllocationStrategy()) { }
@@ -506,7 +507,8 @@ public:
DeviceMemorySpace(),
name(mm.GetUmpireAllocatorDeviceName()),
rm(umpire::ResourceManager::getInstance()),
- d_allocator(rm.isAllocator(name)? rm.getAllocator(name):
+ d_allocator((!std::strcmp(name, "DEVICE") || rm.isAllocator(name)) ?
+ rm.getAllocator(name) :
rm.makeAllocator<umpire::strategy::DynamicPool>
(name, rm.getAllocator("DEVICE"))) { }
void Alloc(Memory &base) { base.d_ptr = d_allocator.allocate(base.bytes); }
|